谁一开始就是大神?

YII2高级源码分析中一个不明白的问题[2.0]

public function validatePassword($attribute, $params)
{
    if (!$this->hasErrors()) {
        $user = $this->getUser();
        if (!$user || !$user->validatePassword($this->password)) {
            $this->addError($attribute, '用户名或密码错误!');
        }
    }
}

/**
 * Logs in a user using the provided username and password.
 *
 * @return boolean whether the user is logged in successfully
 */
public function login()
{
    if ($this->validate()) {
        return Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600 * 24 * 30 : 0);
    } else {
        return false;
    }
}

高级版用户登陆验证中,可以看以用的是 validate 这个方法,但是实际用的是 validatePassword (这个从错误提示中可以看出)
请问这是怎么回事?

这有什么不明白的,validatePassword方法是rules中对字段password自定义的验证,先调用$this->validate()才有validatePassword!

赞(0) 打赏
未经允许不得转载:菜鸟之家 » YII2高级源码分析中一个不明白的问题[2.0]

评论 抢沙发

登录

找回密码

注册