在yii2中登录电子邮件/密码

在yii2中登录电子邮件/密码,yii2,Yii2,是否可以使用Yi2登录和带有电子邮件/密码而不是用户名/密码的rbac?我的自定义wo_用户表不包含用户名字段,而是包含wo_电子邮件和wo_密码 1)在您的用户模型中添加findByEmail() public static function findByEmail($email){ return static::find()->where(['wo_email' => $email, 'status' => self::STATUS_ACTIVE])->one

是否可以使用Yi2登录和带有电子邮件/密码而不是用户名/密码的rbac?我的自定义wo_用户表不包含用户名字段,而是包含wo_电子邮件和wo_密码

1)在您的用户模型中添加findByEmail()

public static function findByEmail($email){
    return static::find()->where(['wo_email' => $email, 'status' => self::STATUS_ACTIVE])->one();
}
2)更改规则()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;
    }

您可能需要在
LoginForm
模型中更新的
login()
方法,但在添加您正在使用的相关模型之前,该方法不可能是具体的。谢谢@MuhammadOmerAslam的建议谢谢您的FeR-S,我将尝试此方法。@AhmadZahabi Ok,请让我知道结果。我会注意到程序员我使用下面的代码来显示用户的名字和姓氏:$user=Yii::$app->user->identity->findIdentity(Yii::$app->user->id);echo$user->wo_firstName;并应替换backend/config/main.php中的用户标识类名'user'=>['identityClass'=>'app\models\WoUser',…]