假设用户正在查看页面的某些部分而他没有登录。他不是通过页面中给出的链接登录。如何将用户重定向到他正在阅读的特定部分。
注意:我已将用户重定向到初始页面,但仍无法重定向到特定部分。
答案 0 :(得分:2)
使用intended()
方法:
return redirect()->intended();
此方法从会话中读取url.intended
值,如果存在,则该方法会将用户重定向到此URL。如果没有,默认情况下会将用户重定向到/
要使其与部分一起使用,请使用JS获取完整的URL:
window.location.href
然后你可以进行AJAX调用,用以下方法手动将当前URL保存到会话中:
session(['url.intended' => url()->full()])
或者您可以将其放入隐藏的输入中,然后在LoginController
中从请求中获取并将其保存到会话中。
答案 1 :(得分:0)
我这样做的方式:
在copyWithin
我更新句柄函数,如下所示:
App\Http\Middleware\Authenticate.php
重要的部分是public function handle($request, Closure $next)
{
if ($this->auth->guest()) {
if ($request->ajax()) {
return response('Unauthorized.', 401);
} else {
return redirect('login')->with(['lastUrl' => $request->url()]);
}
}
return $next($request);
}
。这样我就可以在登录前获得用户试图访问的目标网址,所以当我登录时,我只是将用户重定向到他试图访问的网址。
如果用户没有尝试访问任何页面,他只是被重定向到默认的欢迎页面。