登录时的Laravel 6转到先前的URL不起作用

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

我正在使用Laravel framework,我以前的laravel版本是5.8并在我的中间件登录中

public function handle($request, Closure $next)
{
    if(Auth::check())
    {
        return $next($request);
    }
    else
    {
        Session::put('url.intended',URL::previous());
        return redirect('/login');
    }
}

这是控制器登录控制器

if(Session::get('url.intended') <> '')
    return Redirect::to(Session::get('url.intended'));
else
    return redirect('/');

使用laravel 5.8中的此代码,一切正常,但是当我升级到laravel 6时,它不再工作了,我不知道为什么任何帮助在这里谢谢如果我来自任何链接,它总是将我重定向到/链接

php laravel laravel-middleware laravel-route
1个回答
0
投票

您可能应该让框架处理尽可能多的事情。如果您必须使用自己的中间件和Controller方法,则仍应让框架尽其所能处理此问题。

处理预期的URL已经是框架能够完成的工作,并检查多个条件以解决此问题。您可以使用重定向器的guest方法来为您执行此操作:

return redirect()->guest('login');

这将处理重定向到'login'的操作,并根据需要在会话中设置url.intended

登录成功后,您可以将其重定向到他们试图结束的位置,'意图'或后备URL:

return redirect()->intended('/');

这将重定向到它可以找到的'预期'位置,如果不使用后备,无需自行设置或检查会话。

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