我试图在成功登录或注册后将用户重定向到上一页。
我向LoginController.php
和RegisterController.php
添加了以下方法:
protected function redirectTo()
{
return url()->previous();
}
但是它总是返回到/login
。我尝试查看使用dd(url()->previous());
进行重定向的地方,并得到了http://example.com/login
。有人知道为什么会这样吗?我是否需要在其他控制器上进行其他更改才能使其正常工作?
答案 0 :(得分:1)
在authenticated() function
中成功登录后,您可以使用LoginController
/**
* The user has been authenticated.
*
* @param \Illuminate\Http\Request $request
* @param mixed $user
* @return mixed
*/
protected function authenticated(Request $request, $user)
{
return back(); //add this line of code
}
创建用户成功后RegisterController
和您return back()
答案 1 :(得分:1)
尝试此方法:
public function showLoginForm()
{
session(['link' => url()->previous()]);
return view('auth.login');
}
protected function authenticated(Request $request, $user)
{
return redirect(session('link'));
}
答案 2 :(得分:0)
在您的控制器中,您可以使用。
return redirect()->back()
答案 3 :(得分:0)
您可以使用的选项很少。正如Rayan所说,您可以通过身份验证后成为用户用户。因此,请解释一下可以用来满足要求的可用方法。
1。用户通过back()
认证后
protected function authenticated(Request $request, $user)
{
return back(); //add this line of code
}
2。为LoginController,RegisterController,ResetPasswordController和VerificationController定义重定向路由
protected $redirectTo = '/'; // You can specify the path here.
3。使用会话
您可以使用以前的网址设置会话,然后在所需的任何地方使用它
protected function create(array $data)
{
$redirect = session('redirecturl' => url()->previous());
}
现在使用此路由如下重定向用户
protected function authenticated(Request $request, $user)
{
return redirect(session()->get('redirecturl'));
}
谢谢