我正在使用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时,它不再工作了,我不知道为什么任何帮助在这里谢谢如果我来自任何链接,它总是将我重定向到/链接
您可能应该让框架处理尽可能多的事情。如果您必须使用自己的中间件和Controller方法,则仍应让框架尽其所能处理此问题。
处理预期的URL已经是框架能够完成的工作,并检查多个条件以解决此问题。您可以使用重定向器的guest
方法来为您执行此操作:
return redirect()->guest('login');
这将处理重定向到'login'的操作,并根据需要在会话中设置url.intended
。
登录成功后,您可以将其重定向到他们试图结束的位置,'意图'或后备URL:
return redirect()->intended('/');
这将重定向到它可以找到的'预期'位置,如果不使用后备,无需自行设置或检查会话。