xddelphy 2015-04-22 14:20:37 3718次浏览 5条回复 0 0 0

hi 大家好,我使用Yii2 basic,对于login示例, 请问:在 \yii2\basic\models\User.php 中,有如下:

public function validatePassword($password)
{
    return $this->password === $password;
}

问一下:$this->password 这个是在什么时候填入的呢? 搞了半天搞不清。thx

  • 回复于 2015-04-22 17:04 举报

    在模型被赋值的时候。
    执行$model->load($_POST)时候,调用了setAttributes方法将数据写入了模型对象。里面的细节略多,用IDE追踪一下代码看看就明白了。

  • 回复于 2015-04-23 11:27 举报

    这个user就是一个ActiveRecord,就是一个具体的用户,$this->password当然就有值了。

    这只是示例而已,你还需要根据你的情况去写!

  • 回复于 2015-04-24 14:49 举报

    thx
    但是,你的回答:“执行$model->load($_POST)时候”---指的是用户通过form提交的内容。这些内容会被填写到派生form的属性中,如$password。而我的疑问在于,事先设定的$password,即代码中的比较对象:$this->password,是在什么时候填入的。
    你看我说的是否有道理。

  • 回复于 2015-04-24 14:51 举报

    thx 您说的有道理。
    但是这是验证通过后来,我的疑问参考楼上。
    再次谢谢二位。

  • 回复于 2015-04-24 17:48 举报

    the answer refers to:
    http://www.yiichina.com/tutorial/332

    thx all。

您需要登录后才可以回复。登录 | 立即注册