所以我在laravel框架(版本5.3)中构建这个Web应用程序,并且我想在用户登录失败时更改重定向路径,到目前为止,我在LoginController.php中尝试了这段代码
protected $loginPath = "/my-given-path";
但它似乎没有用,所以我尝试检查这个AuthenticatesUsers特性并得到了这个文件,然后到了RedirectUsers特性,并且没有围绕$loginPath
的这种函数存在,但是$redirectTo
存在。
好吧所以我回到了AuthenticatesUsers的特性,并检查了几个功能,看看: -
public function login(Request $request)
{
$this->validateLogin($request);
// If the class is using the ThrottlesLogins trait, we can automatically throttle
// the login attempts for this application. We'll key this by the username and
// the IP address of the client making these requests into this application.
if ($lockedOut = $this->hasTooManyLoginAttempts($request)) {
$this->fireLockoutEvent($request);
return $this->sendLockoutResponse($request);
}
$credentials = $this->credentials($request);
if ($this->guard()->attempt($credentials, $request->has('remember'))) {
return $this->sendLoginResponse($request);
}
// If the login attempt was unsuccessful we will increment the number of attempts
// to login and redirect the user back to the login form. Of course, when this
// user surpasses their maximum number of attempts they will get locked out.
if (! $lockedOut) {
$this->incrementLoginAttempts($request);
}
return $this->sendFailedLoginResponse($request);
}
因此我需要检查这个`sendFailedLoginResponse()'函数,所以它在这里: -
protected function sendFailedLoginResponse(Request $request)
{
return redirect()->back()
->withInput($request->only($this->username(), 'remember'))
->withErrors([
$this->username() => Lang::get('auth.failed'),
]);
}
所以现在我尝试将redirect()->back()...
更改为redirect('/my-given-path')...
,但仍然没有运气。
我一直试图解决这个问题一整天都无法提出解决方案,之前的问题不是laravel 5.3版本。 因此,如果有人能说出发生了什么事以及我错在哪里,我会很高兴吗?
答案 0 :(得分:0)
好吧,所以我找到了解决方案,实际上我认为在功能redirect()->back()...
下的AuthenticatesUsers.php文件中将redirect('/my-given-url')...
更改为sendFailedLoginResponse()
时,我做错了。
但是当$ redirectTo存在时,$loginPath
不再有效,并且RedirectUsers trait中不存在这样的函数。
所以我必须在AuthenticatesUsers trait函数中手动硬编码我想要的路径。