Yii relations condition кроме вызываемого экземпляр

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Ivan
Сообщения: 1
Зарегистрирован: 2012.12.11, 21:52

Yii relations condition кроме вызываемого экземпляр

Сообщение Ivan »

Добрый день! У меня есть таблица записей с полем group(INT), если у нескольких записей значения group равны, они из одной группы.

Исползуя данное отношение, можно получить всю группу, включая тот экземпляр модели, у которой вызывается отношение.

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

'thingsGroup'=>array(self::HAS_MANY, 'Things', 'group'),
Я хочу написать отношение, которое будет возвращать все записи кроме той, у которой вызывается отношение.

Что то в этом роде, но именно этот пример не сработает, так как $this->id, в данном контексте, использовать нельзя.

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

'thingsGroup'=>array(self::HAS_MANY, 'Things', 'group', 'condition'=>'id!=:selfId', 'params'=>array('selfId'=>$this->id)),
Как это можно реализовать иначе, используя relations? Заранее спасибо!
Аватара пользователя
Ryadnov
Сообщения: 456
Зарегистрирован: 2010.06.20, 00:38
Откуда: Санкт-Петербург

Re: Yii relations condition кроме вызываемого экземпляр

Сообщение Ryadnov »

Можно попробовать так

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

'thingsGroup'=>array(self::HAS_MANY, 'Things', 'group', 'scopes' => 'groupWithoutMe'),

...

public function groupWithoutMe()
{
$this->getDbCriteria()->compare('id', '<>' . $this->id);
return $this;
}
Ответить