Валидация unique по двум полям

Как реализовать проверку на уникальность по сразу по двум полям?

В форме нужно проверить чтобы поля alias и company были попарно уникальными.

В бд поля alias, company попарно уникальные.


array('alias,company','unique') 

Так они проверяюся на уникальность по отдельности, а нужно вместе

В классе CUniqueValidator есть свойство criteria. Туда можно дописать дополнительные условия запроса.

Не уверен, но кажется нужно дописать что-то вроде




'alias', 'unique', 'criteria' => array('company=:value')



Если из этого ничего не выйдет, то можно на основе CUniqueValidator написать свой валидатор. Благо, там не сложно.

Так вроде не работает. В конце этого топика есть ссылка на экстеншен для валидации уникальности по 2 столбцам.

Вот так указываю в модели RegistrForm.php

array(‘username’, ‘unique’, ‘message’ => ‘Пользователь с таким e-mail уже существует’),

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

CDbCommand не удалось исполнить SQL-запрос: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry ‘<Е мэйл который я ввёл, который уже сть в базе>’ for key ‘email’

Значение он не добавляет в базу. А вот если ввести е-мэйл которого в базе нет, то он выдаст ошибку:

Не определено свойство "RegistrForm.TableName".

Но данные в БД добавит, то есть по сути он(unique) работает. Но вот с таким гоморроем!

Подскажите, что сделать??

Egorka уже подсказал