繁体   English   中英

Laravel 5.2在注册后打算重定向

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM