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!