Я построил форму, которая отображает существующее письмо пользователя, а затем запросит новое электронное письмо и письмо с подтверждением, чтобы убедиться, что они набрали его правильно. Поле для нового письма - «new_email», поле подтверждения - «new_email_confirm». Модель уже имеет поле «электронная почта», где хранится их существующий адрес электронной почты. Используемый сценарий - «change_email». Каждое другое правило работает и проверяется с ошибками в моей модели, но это ... когда я вхожу в то же самое электронное письмо/подтверждение, которое уже принято в «электронной почте», я не получаю сообщение об ошибке, его можно сохранить.Yii: Уникальный адрес электронной почты при проверке правил не работает
В правилах, я добавил следующее:
array(
'new_email,new_email_confirm',
'required',
'message'=>'This is a required field',
'on'=>'change_email',
),
array(
'new_email',
'email',
'message'=>'Invalid email address',
'on'=>'change_email',
),
array(
'new_email',
'compare',
'compareAttribute'=>'new_email_confirm',
'message'=>"Emails don't match",
'on'=>'change_email',
),
array(
'new_email',
'unique',
'className'=>'User',
'attributeName'=>'email',
'on'=>'change_email',
),
Что я делаю неправильно?
Опубликовать все ваши правила –
Все правила добавлены @ samuel-liew, спасибо, что посмотрели. – ews2001
Вопрос, что такое тестовый пример? Имеет ли в нем несколько ошибок во все времена или по одному за раз? Если первое (несколько ошибок на тест), правило 'unique' пропускается [по умолчанию] (http://www.yiiframework.com/doc/api/1.1/CUniqueValidator#skipOnError-detail), если еще одна ошибка уже произошла. –