是否可以通过电子邮件/密码而不是用户名/密码使用yii2登录名和rbac?我的自定义wo_user表不包含用户名字段,而是包含wo_email和wo_password。
答案 0 :(得分:1)
1)在用户模型中添加 findByEmail()功能
public static function findByEmail($email){
return static::find()->where(['wo_email' => $email, 'status' => self::STATUS_ACTIVE])->one();
}
2)更改 LoginForm 模型中的 rules()和 getUser()功能
public function rules()
{
return [
[['wo_email', 'wo_password'], 'required'],
['rememberMe', 'boolean'],
['wo_password', 'validatePassword'],
];
}
protected function getUser()
{
if ($this->_user === null) {
$this->_user = User::findByEmail($this->wo_email);
}
return $this->_user;
}