我想知道如何在登录后重定向用户?
让我们说我在页面上#34; www.mysite.com/users/2" 然后我尝试编辑博客文章而不登录并发送到登录页面,登录后我希望返回" www.mysite.com/users/2"
到目前为止我已尝试过这个:
if (Auth::attempt($credentials,$remember)) {
return redirect()->back();
} else {
return redirect()->back()->withErrors([trans('api.couldnotlogin')]);
}
但是return redirect()->back();
只会将我重定向到" www.mysite.com /"
更新
我用它来工作:
public function showLoginForm()
{
$previous_url = Session::get('_previous.url');
$ref = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
$ref = rtrim($ref, '/');
if ($previous_url != url('login')) {
Session::put('referrer', $ref);
if ($previous_url == $ref) {
Session::put('url.intended', $ref);
}
}
return view('auth.login');
}
public function loginUser(ApiAuthUserPassRequest $request)
{
if ($request->has('rememberme')) {
$remember = $request->input('rememberme');
} else {
$remember = false;
}
$credentials = ['email' => $request->input('email'), 'password' => $request->input('password')];
if (Auth::attempt($credentials,$remember)) {
if (Session::has('referrer')) {
return redirect()->intended(Session::pull('referrer'));
} else {
return redirect('/account');
}
} else {
return redirect()->back()->withErrors([trans('api.couldnotlogin')]);
}
}
答案 0 :(得分:0)
Laravel 5.1具有特征Illuminate/Foundation/Validation/ValidatesRequests.php
方法
protected function getRedirectUrl()
{
return app(UrlGenerator::class)->previous();
}
其中UrlGenerator
为Illuminate/Routing/UrlGenerator.php
。您可以尝试使用previous()
方法。