У меня есть расширенное приложение. Я создаю CRUD для модели пользователя. Поэтому я получил обновление. Я пытался обновить пароль, добавивyii2 Как изменить пароль пользователя через actionUpdate?
<?= $form->field($model, 'password')->passwordInput() ?>
Но назвать ошибку, что-то вроде «пароль записи только переменную»
Я пытался использовать полевые
<?= $form->field($model, 'new_password')->passwordInput() ?>
С добавлением в actionUpdate model->setPassword($this->new_password);
и он бросает Getting unknown property: common\modules\user\controllers\DefaultController::new_password
. но model->setPassword('123456');
успешный установка pussword 123456
.
Как я могу получить new_password
поле из поля зрения, чтобы положить его в model->setPassword('there');
Или, может быть, есть лучший способ сделать это?
UPD
Я попытался это сделать. Не работает.
public function beforeSave($insert)
{
if (parent::beforeSave($insert)) {
if ($this->new_password) {
$this->setPassword($this->new_password);
}
return true;
} else {
return false;
}
}
UPD2
public function setPassword($password) {
$this->password_hash = Yii::$app->security->generatePasswordHash($password);
}
И password_hash письма в базе данных. Я могу легко изменить хеш, сгенерированный CRUD, но не знаю, как использовать setPassword()
в updateAction.
Посмотрите на вопрос обновления. Я пытался и не добился успеха. Может быть, я сделал это неправильно? – Heroicone71
Попробуйте отладить его и посмотреть, попадает ли скрипт в этот оператор «если» или нет. Могут быть разные причины: например, ваш 'new_password' должен быть в методе rules() - например. ['new_password', 'string']. Опять же, мы не знаем, что делает метод setPassword. Вернет ли он что-нибудь, или, я думаю, это что-то вроде «$ this-> password = $ password». –
Я добавляю правила, но это не работает. Id добавляет метод setPassword. Я не знаю, как его отладить. – Heroicone71