用户注册后重定向到登录页面。Laravel 5.4
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/44135426/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Redirect to login page after a user is registered. Laravel 5.4
提问by Saroj
How can I redirect to login page, after a user is registered on my web application with a message called "Your information is received and witing for admin approval.". By using laravel 5.4 version
在用户在我的 Web 应用程序上注册并显示一条名为“您的信息已收到并等待管理员批准”的消息后,如何重定向到登录页面。通过使用 laravel 5.4 版本
Note: I have done the login and register by using Auth procress of laravel 5.4.
注意:我已经使用 laravel 5.4 的 Auth 进程完成了登录和注册。
Edit: Here is my RegisterController
编辑:这是我的 RegisterController
namespace App\Http\Controllers\Auth;
use App\User;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers;
use Illuminate\Support\Facades\Storage;
class RegisterController extends Controller
{
/*
|--------------------------------------------------------------------------
| Register Controller
|--------------------------------------------------------------------------
|
| This controller handles the registration of new users as well as their
| validation and creation. By default this controller uses a trait to
| provide this functionality without requiring any additional code.
|
*/
use RegistersUsers;
/**
* Where to redirect users after registration.
*
* @var string
*/
protected $redirectTo = '/login';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest');
}
/**
* Get a validator for an incoming registration request.
*
* @param array $data
* @return \Illuminate\Contracts\Validation\Validator
*/
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6|confirmed',
'userimage' => 'required|image'
]);
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return User
*/
protected function create(array $data) {
$path = Storage::putFile('userimages',$data['userimage']);
$user = User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
'userimage' => $path,
'user_type' => 3
]);
return $user;
}
回答by Pankit Gami
In RegisterController
, by default Laravel login the user, so when you redirect back to login
route. It gives you page is not redirecting properlyerror.
在 中RegisterController
,默认情况下 Laravel 登录用户,因此当您重定向回login
路由时。它给你页面没有正确重定向错误。
In your RegisterController
add the register
method :
在您RegisterController
添加register
方法:
/**
* Handle a registration request for the application.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function register(Request $request)
{
$this->validator($request->all())->validate();
event(new Registered($user = $this->create($request->all())));
return redirect($this->redirectPath())->with('message', 'Your message');
}
回答by X_slasher
Also add this line of code on the top of RegisterController:
还要在 RegisterController 的顶部添加这行代码:
use Illuminate\Http\Request;
使用 Illuminate\Http\Request;
use Illuminate\Auth\Events\Registered;
使用 Illuminate\Auth\Events\Registered;