Есть профайл пользователя. В форме редактирования профиля есть поля которые можно изменять + password & password_repeat (второе через public $password_repeat в модели)
Если оба поля с паролями пустое, то используется один набор правил для валидации плюс исключается обновление пароля.
Если же хотя бы одно поле с паролем не пустое, но выполняется другой набор правил для валидации.
Проверка валидации происходит через
$scenario = 'no_pass';
$model->scenario = $scenario;
if( $has_pass ) {
$scenario = 'password';
}
if( $model->validate($scenario) ) {
// сохранение и т.д.
}
само правило для password вот
array('first_name, last_name, position, company_name, company_type, phone, password, password_repeat', 'required', 'on' => 'password'),
array('password', 'length', 'min' => 6, 'allowEmpty' => false, 'on' => 'password'),
array('password', 'compare', 'compareAttribute' => 'password_repeat', 'allowEmpty' => false, 'on' => 'password'),
array('first_name, last_name, position, company_name, company_type, phone', 'filter', 'filter' => 'trim', 'on' => 'password'),
беда в том что если я ввожу пароль только в одном поле и меньше 6 символов то ошибка не возникает.
хотя я проверил что данные с формы приходят корректные, присваиваются аттрибутам модели тоже корректно, так же используется правило password для валидации.
Но, не могу понять:
-
почему нет сообщения о том что поле пароля меньше 6 символов
-
почему нет сообщения что password_repeat не может быть пустым (а я ввожу пароль только в password длиной 3 символа)
-
почему нет сообщения что password & password_repeat не идентичные
Yii: 1.1.16
OS: Винда