Php 更新数据时哈希密码覆盖

Php 更新数据时哈希密码覆盖,php,activerecord,hash,passwords,yii2,Php,Activerecord,Hash,Passwords,Yii2,当您从ActiveRecord扩展类时,是否处理用户数据?我想更新用户时遇到问题。有一个PasswordHash属性。我使用函数beforeSave在创建时哈希密码,但我不知道我应该在更新操作中使用它 public function beforeSave($insert) { if (parent::beforeSave($insert)) { if($this->isNewRecord) { $this->created_at = t

当您从ActiveRecord扩展类时,是否处理用户数据?我想更新用户时遇到问题。有一个PasswordHash属性。我使用函数beforeSave在创建时哈希密码,但我不知道我应该在更新操作中使用它

public function beforeSave($insert)
{
    if (parent::beforeSave($insert)) {
        if($this->isNewRecord) {
            $this->created_at = time();
            $this->status = self::DEFAULT_STATUS;
            $this->generateAuthKey();
            $this->setPassword($this->PasswordHash);
            $this->RulesAccept=1;
            return true;
        } else {
            $this->setPassword($this->PasswordHash);
            return true;
        }
    } 
}

当我在输入中更新用户时,我可以看到散列密码的虚线,但当我更改密码时,它不会散列此密码。我修改了我的代码,但密码不断被覆盖。如何使用ActiveRecord中的passwordInput和哈希密码?

当我需要在Yi2中哈希密码时,我使用以下代码:

 $password="YOUR PASSWORD";
 $hash = Yii::$app->getSecurity()->generatePasswordHash($password);
 die($hash);

但是我问我如何编辑这个密码,因为它总是覆盖我的旧密码我的函数setPassword和你的一样