我的
User
模型中有一个过期日期,我想在登录时检查。我在凭据方法中写了关于活动用户的信息,如下所示:
protected function credentials(Request $request) {
return array_merge(
$request->only($this->username(), 'password'),
['status' => 1]
);
}
但是,它只添加相等条件,但我想在这个方法中添加
>= date('Y-m-d')
。
如 laravel 文档中所述,我们可以向
Auth::attempt
添加自定义条件,但仅限于相等性检查。
在这种情况下,唯一的选择是重写 login
中的 LoginController
方法(方法在 AuthenticatesUsers
特征中定义)并在发送登录响应之前添加自定义检查。
// for check expire date
$user = (new User())->where('email', $request->email)->get();
if ($user[0]->expire_date < date('Y-m-d')) {
return $this->sendFailedLoginResponse($request);
}