Только сейчас заметил, что не помогло. Когда задаю связь
Код: Выделить всё
public function relations(){
return array(
'ptrans'=>array(self::HAS_MANY, 'Periods', 'fk_room',
'condition'=>'(ptrans.arrive<:mbegin &&
ptrans.depart>:mend) ||
ISNULL(ptrans.fk_room)
'
),
То в Rooms включаются только те записи которые имеют пустым поле fk_room в связанной таблице.
Если задаю связь так:
Код: Выделить всё
public function relations(){
return array(
'periods'=>array(self::HAS_MANY, 'Periods', 'fk_room'),
'ptrans'=>array(self::HAS_MANY, 'Periods', 'fk_room',
'condition'=>'
(ptrans.arrive<:mbegin &&
ptrans.depart>:mend) ||
ISNULL(ptrans.fk_room) ||
!ISNULL(ptrans.fk_room)
'
),
}
То в Rooms включаются все записи и даже те, которые не удовлетворяют условию (ptrans.arrive<:mbegin && ptrans.depart>:mend).