Laravel:登录后将用户重定向到同一页面

Use*_*r57 2 php laravel laravel-5

我有一个购物车产品页面,如果有人点击产品添加到购物车按钮,他们将被重定向到登录页面.

成功登录后,我需要再次将用户发回相同的产品页面.

我在登录控制器中使用了以下方法.

但它并没有按照我想要的方式运作.意味着它再次重定向到索引页面,我也使用了return redirect()->back();..但是没有解决问题

if (auth()->attempt(array('email' => $request->input('email'),
             'password' => $request->input('password')))){
 if(Auth::user()->name == 'Admin'){
                 return redirect()->to('home');
            }
            else{
           //     return redirect()->back();
                return redirect()->intended('/');
            }
     }
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题?

Ale*_*nin 5

在这种情况下back(),intended()将无法正常工作.

您可以将最后一个产品页面保存到会话中.很简单的例子:

session(['last_product_page_id' => $product->id]);
Run Code Online (Sandbox Code Playgroud)

然后在登录后使用此数据重定向用户:

if (session()->has('last_product_page_id')) {
    return redirect()->route('product', session('last_product_page_id'));
}
Run Code Online (Sandbox Code Playgroud)

  • 这可能超出了这个答案的范围,但是你可以解释为什么`back()`或`intention()`不起作用..任何可能有帮助的链接. (3认同)