注册后,Laravel 5.2重定向

时间:2016-05-02 07:39:41

标签: php laravel redirect laravel-5.2

我已经为我的登录流程重定向了。但我想在用户注册后将其导航到有意页面。

如果用户未登录并尝试访问受保护的路由,我已将行为更改为重定向到注册页面。

然而,在成功注册后,他没有被重定向到有线路线。登录后它正在运行。

return redirect()->guest('/auth/register');

5 个答案:

答案 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属性中的网址