Ajax валидация на Yii. Почему не выводится ошибка валидации на уникальность поля?

Для формы заданы несколько параметров валидации, в том числе на уникальность значения поля.
Другие правила валидации yii честно отрабатывает и в форме выдает ошибку, но если ввести значение, которое уже есть в базе данных (валидация на уникальное значение), на клиенте никакой ошибки не будет и форма отправится, однако сервер не пропустит значение и не запишет в базу.

Правила валидации:
public function rules() {
  return array(
    array('username, password, email', 'required'),
    array('username', 'unique', 'className'=>'Users', 'message'=>'Данный логин занят' ),
    array('username', 'length', 'min'=>3, 'max'=>20),
    array('email', 'email'),
    array('password', 'length', 'min'=>5, 'max'=>100),
    array('id, username', 'safe', 'on'=>'search'),
  );
}

Форма:
$form=$this->beginWidget('CActiveForm', array(
  'id'=>'registr-form',
  'enableClientValidation'=>true,
  'action'=>Yii::app()->createUrl('/site/CreateProfil'),
  'clientOptions'=>array(
    'validateOnSubmit'=>true,
  ),
));
		
echo '<label for="login">Логин:</label>';
echo $form->textField($model,'username', array('class'=>"input_text"));
echo $form->error($model,'username'); 
echo '<label for="password">Пароль:</label>';
echo $form->passwordField($model,'password', array('class'=>"input_text"));
echo $form->error($model,'password'); 
echo '<label for="login">E-mail:</label>';
echo $form->textField($model,'email', array('class'=>"input_text"));
echo $form->error($model,'email'); 
echo CHtml::submitButton('Создать', array('class'=>"btn"));
			
$this->endWidget();

Почему не выводится ошибка валидации на уникальность поля?
  • Вопрос задан
  • 5164 просмотра
Решения вопроса 1
fornit1917
@fornit1917
Как минимум надо указать 'enableAjaxValidation' => true.

enableClientValidation и enableAjaxValidation это не одно и то же.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы