Повторить пароль не работает в Yii2
Я написал правила в модели как:
public $password_repeat;
/**
* @inheritdoc
*/
public function rules()
{
return [
....
....
['password', 'required'],
['password', 'string', 'min' => 6],
['password_repeat', 'compare', 'compareAttribute'=>'password', 'message'=>"Passwords don't match" ],
];
}
Если я использую другой пароль в поле Password
и Password Repeat
, он дает ошибку. Таким образом, это означает, что он работает. Но проблема в том, что она не дает никакой ошибки, если поле Password Repeat
пусто.
Ответы
Ответ 1
Добавьте необходимый тег для password_repeat. Ниже показано
return [
....
['password', 'required'],
['password', 'string', 'min' => 6],
['password_repeat', 'required'],
['password_repeat', 'compare', 'compareAttribute'=>'password', 'message'=>"Passwords don't match" ],
];
Ответ 2
Другой подход - установить переменную $skipOnEmpty в false:
return [
....
['password', 'required'],
['password', 'string', 'min' => 6],
['password_repeat', 'compare', 'compareAttribute'=>'password', 'skipOnEmpty' => false, 'message'=>"Passwords don't match"],
];
Это дает вам возможность сделать только поле повторного пароля, если пароль тоже имеет значение.