[英]How to use `getLastAttempted()` in laravel 5.3?
如何在Laravel 5.3中使用getLastAttempted()
?
$user = auth()->getLastAttempted();
dd($user);
if (!$user->activated) {
return redirect('/login')->with('status', 'This account has not been activated.');
}
我要检查登录时是否activated
了用户( users
表中有一个已activated
字段),我将上面的代码添加到\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Auth\\AuthenticatesUsers.php
login()
方法下面\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Auth\\AuthenticatesUsers.php
,
如下:
public function login(Request $request)
{
$this->validateLogin($request);
if ($this->hasTooManyLoginAttempts($request)) {
$this->fireLockoutEvent($request);
return $this->sendLockoutResponse($request);
}
// start
$user = auth()->getLastAttempted();
dd($user);
if (!$user->activated) {
return redirect('/login')->with('status', 'This account has not been activated.');
}
//end
if ($this->attemptLogin($request)) {
return $this->sendLoginResponse($request);
}
$this->incrementLoginAttempts($request);
return $this->sendFailedLoginResponse($request);
}
dd($user);
的结果dd($user);
一片空白。
我该怎么办?
将代码块放在if else语句中更有意义吗?
public function login(Request $request)
{
$this->validateLogin($request);
if ($this->hasTooManyLoginAttempts($request)) {
$this->fireLockoutEvent($request);
return $this->sendLockoutResponse($request);
}
if ($this->attemptLogin($request)) {
// start
$user = \Auth::user();
dd($user);
if (!$user->activated) {
//instead of redirecting, increment attempts and send failed response
$this->incrementLoginAttempts($request);
return $this->sendFailedLoginResponse($request);
}else{
return $this->sendLoginResponse($request);
}
//end
}
$this->incrementLoginAttempts($request);
return $this->sendFailedLoginResponse($request);
}
您可以覆盖validateLogin函数:
$this->validate($request, [
$this->username() => 'required|exists:users,' . $this->username() . ',activated,1',
'password' => 'required',
]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.