繁体   English   中英

Laravel 5.4 $ redirect不起作用

[英]Laravel 5.4 $redirectTo not working

我被困在我的LoginController.php重写redirectTo()函数, 如Laravel docs here所示

我的控制器包含:

/**
 * URI where we redirect to after login
 *
 * @var string
 */
protected $redirectTo = 'player/home';

/**
 * Set route redirect
 *
 * @return mixed
 */
protected function redirectTo()
{
    dd("STOP"); <-- does not trigger

    if (session()->has('game.details')) {
        return route(session()->get('game.details.setup_route'));
    } else {
        return 'player/home';
    }
}

为什么dd永远不会触发,页面总是重定向到player/home 谢谢

如果您在Auth\\RegisterController的构造函数中注释$this->middleware("guest")或在Kernel.php更改有关来宾中间件的Kernel.php则它将起作用。

尽管我没有使方法重写起作用,但我通过在login方法中更改了以下几行来解决了该问题:

    if ($this->attemptLogin($request)) {
        session()->put('game.details', Game::findByUUIDOrFail($uuid));

        $this->redirectTo = route(session()->get('game.details.setup_route'));

        return $this->sendLoginResponse($request);
    }

如果您已运行php artisan auth

像这样更改RedirectIfAuthenticated中间件

class RedirectIfAuthenticated
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @param  string|null  $guard
     * @return mixed
     */
    public function handle($request, Closure $next, $guard = null)
    {
        if (Auth::guard($guard)->check()) {

            return redirect('/home');//change the redirect here
        }

        return $next($request);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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