Здравствуйте! Получаю ошибку валидации при регистрации пользователя: "Необходимо заполнить «Повторите пароль»" Хотя я ввожу в оба поля пароль без ошибок!
Контроллер (сохранение данных):
if($model->load(Yii::$app->request->post()) && $model->validate()) {
$new = new Users();
$new->name = $model->name;
$new->lastname = $model->lastname;
$p_number = str_replace(')','',str_replace('(','',str_replace(' ','',$model->phone_number)));
$new->phone_number = $p_number;
$new->password = Yii::$app->security->generatePasswordHash($model->password);
$new->object = rand(1111111111, 9999999999);
$conf = rand(1111, 9999);
$new->confirmation = $conf;
if($new->save()) {
\Yii::$app->session->setFlash('success', 'Account successfully created');
return $this->redirect(['/user/confirmation', 'object' => $new->object]);
} else {
\Yii::$app->session->setFlash('danger', 'Error creating account');
return $this->redirect('register');
}
}
Правила валидации в модели:
public $password2
public function rules()
{
return [
[['name', 'phone_number', 'password', 'password2'], 'required'],
['phone_number', 'unique'],
['password2', 'compare', 'compareAttribute'=>'password', 'message'=> Yii::t('app', 'Passwords don\'t match')],
[['password', 'password2'], 'string', 'min'=>6],
[['alive'], 'integer'],
[['name', 'lastname', 'phone_number', 'password'], 'string', 'max' => 255],
[['object', 'confirmation'], 'safe']
];
}
Вывод поля повтор пароля во вьюшке:
<?= $form->field($model, 'password2')->passwordInput(['value'=>''])->label(Yii::t('app', 'Password repeat')) ?>