[英]Laravel 5.2 redirect intended after register
我已经为我的登录流程准备了重定向界面。 但我想在用户注册后将其导航到该页面。
如果用户未登录并尝试访问受保护的路由,我已经更改了重定向到注册页面的行为。
但是,成功注册后,他不会被重定向到inted路由。 登录后即可正常工作。
return redirect()->guest('/auth/register');
您可以使用$redirectPath
变量执行此操作。 只需AuthController
添加到Auth/AuthController.php
AuthController
类中
protected $redirectPath= '/yourURL';
上面的重定向路径将用于成功登录和成功注册。
如果您只想在注册后重定向而不登录,则需要自定义postRegister()
函数:
public function postRegister(Request $request)
{
$validator = $this->registrar->validator($request->all());
if ($validator->fails())
{
$this->throwValidationException(
$request, $validator
);
}
$this->auth->login($this->registrar->create($request->all()));
//Set your redirect path below
return redirect('/plan');
}
您可以将预期页面设置为会话变量。
return redirect()->guest('/auth/register')->with('intendedUrl', $request->path());
注册后再将其捡起即可。
$intendedUrl = $request->session()->get('intendedUrl');
但是不要忘记清除会话变量。
return redirect()->intended('/auth/register');
在Laravel 5.5中,您需要删除$redirectTo
变量并在用户注册控制器中创建redirectTo
函数,如下所示:
public function redirectTo()
{
$intended = Session::get('url.intended');
if (!empty($intended)) {
Session::forget('url.intended');
return $intended;
}
return 'YOUR_NORMAL_URL';
}
确保注册控制器使用RegistersUsers
。 如果选中在RegistersUsers
特征中使用的RedirectsUsers
特征,则具有以下功能:
public function redirectPath()
{
if (method_exists($this, 'redirectTo')) {
return $this->redirectTo();
}
return property_exists($this, 'redirectTo') ? $this->redirectTo : '/home';
}
首先检查redirectTo
功能。
希望这对某人有帮助。
在RegisterController.php中
public function redirectTo(){
$url = redirect()->intended($this->redirectTo)->getTargetUrl();
return $url;
}
如果有意图,它将被定向到该目标,否则将被定向到保存在$ redirectTo属性中的url。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.