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

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
dimasnake
Сообщения: 13
Зарегистрирован: 2010.03.03, 14:42

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

Сообщение dimasnake »

Как реализовать проверку на уникальность по сразу по двум полям?
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

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

Сообщение samdark »

Пример приведите.
dimasnake
Сообщения: 13
Зарегистрирован: 2010.03.03, 14:42

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

Сообщение dimasnake »

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

Код: Выделить всё

array('alias,company','unique') 
Так они проверяюся на уникальность по отдельности, а нужно вместе
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

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

Сообщение samdark »

alias=company?
dimasnake
Сообщения: 13
Зарегистрирован: 2010.03.03, 14:42

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

Сообщение dimasnake »

Нет. В бд поля alias, company попарно уникальные.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

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

Сообщение samdark »

т.е. alias1=alias2 AND company1=company2?
dimasnake
Сообщения: 13
Зарегистрирован: 2010.03.03, 14:42

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

Сообщение dimasnake »

Sam Dark писал(а):т.е. alias1=alias2 AND company1=company2?
Да. Уникальны только пары alias,comany.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

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

Сообщение samdark »

Код: Выделить всё

public function rules(){
    return array(
        array('alias1', 'compare', 'compareAttribute'=>'alias2'),
        array('company1', 'compare', 'compareAttribute'=>'company2'),
    );
}
 
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

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

Сообщение samdark »

Но если всё-таки надо проверить уникальность, Yii по двум полям этого делать не может. Придётся написать свой валидатор.
dimasnake
Сообщения: 13
Зарегистрирован: 2010.03.03, 14:42

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

Сообщение dimasnake »

Всё ясно. Написал свой валидатор.
Аватара пользователя
Akulenok
Сообщения: 437
Зарегистрирован: 2014.05.05, 18:32
Откуда: localhost

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

Сообщение Akulenok »

Подскажите а как сделать уникальность поля game_id только у определенного пользователя user_id
т.е. запись
game_id=5 user_id=1 и запись
game_id=5 user_id=2
Возможна! а
game_id=5 user_id=1
game_id=5 user_id=1
нет!
ភាសាខ្មែរ Yii2 - это кайф!
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

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

Сообщение ElisDN »

Akulenok писал(а):Подскажите а как сделать уникальность поля game_id только у определенного пользователя user_id
т.е. запись
game_id=5 user_id=1 и запись
game_id=5 user_id=2
Возможна! а
game_id=5 user_id=1
game_id=5 user_id=1
нет!
В Yii2 или Yii1? В Yii2:

Код: Выделить всё

['game_id', 'unique', 'targetAttribute' => ['game_id', 'user_id']],  
nikitagreb
Сообщения: 25
Зарегистрирован: 2014.07.17, 21:38

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

Сообщение nikitagreb »

А если так?

Код: Выделить всё

	    [ 
		'child_id',
                'unique',
                'criteria' => [
                    'condition' => 'parent_id = :parent_id',
                    'params' => ['parent_id' => $this->parent_id],
                ]
            ], 
Ответить