Passwords yii2如何通过actionUpdate更改用户密码?

Passwords yii2如何通过actionUpdate更改用户密码?,passwords,action,yii2,Passwords,Action,Yii2,我有一个高级应用程序。我为用户模型创建CRUD。所以我得到了最新的行动。我试图通过添加 <?= $form->field($model, 'password')->passwordInput() ?> UPD2 public function setPassword($password) { $this->password_hash = Yii::$app->security->generatePasswordHash($password)

我有一个高级应用程序。我为用户模型创建CRUD。所以我得到了最新的行动。我试图通过添加

<?= $form->field($model, 'password')->passwordInput() ?>
UPD2

  public function setPassword($password) {
    $this->password_hash = Yii::$app->security->generatePasswordHash($password);
  }
以及在数据库中写入密码\u散列。我可以通过生成的CRUD轻松更改哈希,但不知道如何在updateAction中使用
setPassword()

这里“$this”是您的控制器,当然,它没有“new\u password”属性。您最好不要在控制器中设置新密码,而是在模型中设置,例如在beforeSave方法中:

if ($this->new_password) {
    $this->setPassword($this->new_password);
}

您可以尝试使用另一个变量编写
updatePassword
函数,如
setPassword

 public function updatePassword($new_password) {
    $this->password_hash = Yii::$app->security->generatePasswordHash($new_password);
  }
声明一个变量

public $new_password;
并将其添加到规则()中

在控制器中的
actionUpdate
添加

$model->updatePassword($model->new_password);

这将有助于查看更新问题。我努力了,但没有成功。可能是我做错了吗?试着调试它,看看脚本是否进入“if”语句。可能有不同的原因:例如,您的“新密码”必须在rules()方法中-例如:[“新密码”、“字符串”]。我们同样不知道“setPassword”方法的作用。它是否返回任何东西,或者,我猜,它执行类似“$this->password=$password”的操作。我添加了规则,但它不起作用。Id add
setPassword
metod有问题。我不知道如何调试它。您可以在那里放置类似“die($this->new_password);”的内容,然后查看当前值。您还可以学习如何在IDE中进行调试。
public $new_password;
  public function rules() {
    return [
      //...
      ['new_password', 'required'],
      ['new_password', 'string', 'min' => 6],
    ];
  }
$model->updatePassword($model->new_password);