В Yii, как вы проверяете уникальность другого столбца в таблице?

Я даю своим пользователям возможность изменить адрес электронной почты своего аккаунта. Для этого, когда они отправляют новое электронное письмо, на которое они хотели бы переключиться, я сохраняю это электронное письмо в своей базе данных как временное электронное письмо. Когда пользователь нажимает на электронное письмо с подтверждением, отправленное на новое электронное письмо, его оригинальное электронное письмо изменится на новое. В моей таблице "пользователи" у меня есть столбец "электронная почта", а другой - "temp_email". Когда пользователь отправляет новое письмо в столбец "temp_email", я хотел бы проверить, что оно уникально не только в столбце "temp_email", но и в столбце "email".

В настоящее время у меня есть эти два массива в моей функции rules():

массив ('temp_email', 'email'),
array ('temp_email', 'unique', 'message' => UserModule:: t ("Адрес электронной почты этого пользователя уже существует."))

которые говорят, что временное электронное письмо должно быть в формате электронной почты и что оно не может совпадать с любым другим временным электронным письмом. Какой третий массив я должен добавить, говоря, что временное письмо не может совпадать с любым другим письмом в столбце "электронная почта"? Спасибо!

1 ответ

Решение

Вы можете добавить дополнительные атрибуты к своему правилу, чтобы указать точные правила для уникальной проверки

array('temp_email', 'unique',
      'className' => 'User', 'attributeName' => 'email',
      'message'   => "This user's email address already exists."),
Другие вопросы по тегам