注册后,Laravel 5.2重定向

问题描述 投票:0回答:5

我已经获得了用于登录流程的重定向。但我希望在用户注册后将用户导航到目标页面。

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

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

return redirect()->guest('/auth/register');
php laravel redirect laravel-5.2
5个回答
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');
}

0
投票

您可以将目标页面设置为会话var。

return redirect()->guest('/auth/register')->with('intendedUrl', $request->path());

然后在注册后再次拿起它。

$intendedUrl = $request->session()->get('intendedUrl');

不要忘记清除session var。


0
投票
 return redirect()->intended('/auth/register');

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功能。

希望这对某人有帮助。


0
投票

在RegisterController.php中

public function redirectTo(){
    $url = redirect()->intended($this->redirectTo)->getTargetUrl();
    return $url;
}

如果有意图,它将被定向到它,否则它将被定向到保存在$ redirectTo属性中的url

© www.soinside.com 2019 - 2024. All rights reserved.