登录/注册后,将用户重定向到特定的部分/ div

问题描述 投票:3回答:2

假设用户正在查看页面的某些部分而他没有登录。他通过页面中给出的链接登录。如何将用户重定向到他正在阅读的特定部分。

注意:我已将用户重定向到初始页面,但仍无法重定向到特定部分。

php laravel
2个回答
2
投票

使用intended()方法:

return redirect()->intended();

此方法从会话中读取url.intended值,如果存在,则该方法将用户重定向到此URL。如果没有,默认情况下会将用户重定向到/

要使其与部分一起使用,请使用JS获取完整的URL:

window.location.href

然后,您可以进行AJAX调用以手动将当前URL保存到会话中:

session(['url.intended' => url()->full()])

或者您可以将其放入隐藏的输入中,然后在LoginController中从请求中获取它并将其保存到会话中。


0
投票

我这样做的方式:

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);
}

重要的是return redirect('login')->with(['lastUrl' => $request->url()]);。这样我就可以在登录前获得用户试图访问的目标网址,因此当我登录时,我只是将用户重定向到他试图访问的网址。

如果用户没有尝试访问任何页面,他只是被重定向到默认的欢迎页面。

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