Повторный пароль не работает в 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
пустое.
11
Author: StreetCoder, 2015-03-11
2 answers
Добавьте также обязательный тег для password_repeat. Показано ниже
return [
....
['password', 'required'],
['password', 'string', 'min' => 6],
['password_repeat', 'required'],
['password_repeat', 'compare', 'compareAttribute'=>'password', 'message'=>"Passwords don't match" ],
];
23
Author: arkoak, 2015-03-11 06:04:11
Другой подход заключается в том, чтобы установить переменную $skipOnEmpty в значение false:
return [
....
['password', 'required'],
['password', 'string', 'min' => 6],
['password_repeat', 'compare', 'compareAttribute'=>'password', 'skipOnEmpty' => false, 'message'=>"Passwords don't match"],
];
Преимущество этого заключается в том, что вы можете сделать поле повторного пароля обязательным только в том случае, если в нем также есть значение пароля.
8
Author: Tim Cummins, 2015-10-21 09:17:53