我正在将旧项目(在zend框架中完成)迁移到laravel 5.5 . 数据库是mongo db . 我正在使用laravel-mongodb连接laravel和mongo .
我已经覆盖了laravel登录功能,因为表字段与默认的laravel字段不同 . 登录工作正常 .
目前,当我尝试重置密码时,我收到错误消息“我们找不到具有该电子邮件地址的用户” . 如何覆盖重置密码功能?
在用户表中,字段名称为usrEmail和usrPassword . 登录的工作代码如下 .
目前,当我尝试重置密码时,我收到错误消息 We can't find a user with that e-mail address.
如何覆盖重置密码功能?
在用户表中,字段名称为 usrEmail
和 usrPassword
. 登录的工作代码如下 .
LoginController.php
protected function attemptLogin(Request $request)
{
$authUser = User::where('usrEmail', $request->email)
->whereIn('usrlId', [1, 2, 5, 6])
->first();
if($authUser) {
$password = md5(env('MD5_Key'). $request->password. $authUser->usrPasswordSalt);
$user = User::where('usrEmail', $request->email)
->where('usrPassword', $password)
->where('usrActive', '1')
->where('usrEmailConfirmed', '1')
->where('is_delete', 0)
->where('usrlId', 2)
->first();
if ($user) {
$updateLoginTime = User::find($user->_id);
$updateLoginTime->lastlogin = date('Y-m-d H:i:s');
$updateLoginTime->save();
$this->guard()->login($user, $request->has('remember'));
return true;
}
else {
return false;
}
}
return false;
}
1 回答
试着把它放在你的
Auth/ResetsPasswordController.php
默认情况下
->only(
也包含email
字段,但由于它在数据库中不同,我们需要覆盖此函数,默认情况下在ResetsPasswords
特性中定义 .这应该确保密码重置流程中的任何
email
字段(一旦您单击电子邮件链接请求电子邮件和表单)将指向数据库中的右侧字段 .