В общем, Yii не создан для работы с «отношениями трех таблиц».Тем не менее, вы должны по-прежнему иметь возможность добавить условие () к вашему запросу отношения, я думаю, проблема в том, что вы не присоединились к таблице item_meta1
.Вы можете сделать это двумя способами:
1) Добавить предложение JOIN к своему отношению:
return array(
'categories'=>array(self::MANY_MANY, 'ItemCategory',
'item_cat_relation(item_id, cat_id)',
'join'=>'JOIN item_meta1 ON categories.cat_of_type=item_meta1.item_type_id'
),
);
1) Добавить предложение WITH к своему отношению (при условии, что у вас есть отношение для другоготаблица настроена):
return array(
'itemMeta'=>array(self::HAS_MANY, 'ItemMeta','item_type_id'), // I probably don't have this quite right, but you should get the idea
'categories'=>array(self::MANY_MANY, 'ItemCategory',
'item_cat_relation(item_id, cat_id)',
'with'=>'itemMeta',
'condition'=>'categories.cat_of_type=itemMeta.item_type_id')
),
);
Я даже немного не тестировал этот код, но я делал подобные вещи, поэтому должен работать в принципе.:) Удачи!