2016-05-25 18:43:06 2347次浏览 1条回答 0 悬赏 10 金钱
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 (这个从错误提示中可以看出)
请问这是怎么回事?

最佳答案

  • 白狼栈 发布于 2016-05-25 19:52 举报

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

    1 条回复
    回复于 2016-05-25 19:56 回复

    谢谢老师!!!!

    没有找到数据。
您需要登录后才可以回答。登录 | 立即注册
okokad
经理

okokad

注册时间:2016-02-29
最后登录:2017-07-01
在线时长:49小时26分
  • 粉丝12
  • 金钱25
  • 威望80
  • 积分1315

热门问题