我已经为我的登录流程重定向了。但我想在用户注册后将其导航到有意页面。
如果用户未登录并尝试访问受保护的路由,我已将行为更改为重定向到注册页面。
然而,在成功注册后,他没有被重定向到有线路线。登录后它正在运行。
return redirect()->guest('/auth/register');
答案 0 :(得分:0)
您可以使用$redirectPath
变量执行此操作。只需将以下行添加到AuthController
Auth/AuthController.php
班级
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');
}
答案 1 :(得分:0)
您可以将目标页面设置为会话变量。
return redirect()->guest('/auth/register')->with('intendedUrl', $request->path());
然后在注册后再次拿起它。
$intendedUrl = $request->session()->get('intendedUrl');
不要忘记清除session var。
答案 2 :(得分:0)
return redirect()->intended('/auth/register');
答案 3 :(得分:0)
在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
。如果您检查RedirectsUsers
特征中使用的RegistersUsers
特征,则有此功能:
public function redirectPath()
{
if (method_exists($this, 'redirectTo')) {
return $this->redirectTo();
}
return property_exists($this, 'redirectTo') ? $this->redirectTo : '/home';
}
首先检查redirectTo
函数。
希望这对某人有帮助。
答案 4 :(得分:0)
在RegisterController.php
public function redirectTo(){
$url = redirect()->intended($this->redirectTo)->getTargetUrl();
return $url;
}
如果有意图,它将被定向到该目标,否则将被定向到保存在$ redirectTo属性中的网址