Php 更新数据时哈希密码覆盖
当您从ActiveRecord扩展类时,是否处理用户数据?我想更新用户时遇到问题。有一个PasswordHash属性。我使用函数beforeSave在创建时哈希密码,但我不知道我应该在更新操作中使用它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
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和你的一样