Я использую compareValidator в форме yii2.
Вот код
[['passwordConfirm'], 'compare', 'compareAttribute' => 'password'],
Он должен работать нормально, потому что его код также есть в документации.
Но происходит то, что он проверяет пароль только один раз.
Например, если я введу пароль и Подтвердить пароль один раз, он будет проверен нормально, но если я вернусь в поле пароль и изменю пароль, чем не сравнивает ввод подтвердить пароль с новым вводом пароль
У кого-нибудь еще такая же проблема??? или я тоже что-то не так сделал
Вот код model
public function rules()
{
return [
['username', 'filter', 'filter' => 'trim'],
['username', 'required'],
['username', 'unique', 'targetClass' => '\common\models\User', 'message' => 'This username has already been taken.'],
['username', 'string', 'min' => 2, 'max' => 255],
['email', 'filter', 'filter' => 'trim'],
['email', 'required'],
['email', 'email'],
['email', 'string', 'max' => 255],
['email', 'unique', 'targetClass' => '\common\models\User', 'message' => 'This email address has already been taken.'],
['password', 'required'],
['password', 'string', 'min' => 6],
[['passwordConfirm'], 'compare', 'compareAttribute' => 'password'],
];
}
public function attributeLabels()
{
return [
'passwordConfirm' => 'Confirm Password',
'username' => 'Username',
'email' => 'Email',
];
}
А вот код view
<?php $form = ActiveForm::begin(['options'=>['enctype'=>'multipart/form-data']]); ?>
<?= $form->field($model, 'username')->textInput( ['data-toggle' => 'tooltip',
'data-placement' =>
'right',
'title' => 'Username should contain at least 6 characters'
]) ?>
<?= $form->field($model, 'password')->passwordInput(['data-toggle' => 'tooltip',
'data-placement' =>
'right',
'title' => 'Password should contain at least 6 characters',
]) ?>
<?= $form->field($model, 'passwordConfirm')->passwordInput() ?>
<?= $form->field($model, 'email') ?>
<?php ActiveForm::end(); ?>
Спасибо
when
вместе сcompare
, но ничего не работает. - person BlackSkull   schedule 29.09.2015