Объединение нескольких таблиц Yii CactiveDataProvider?

Я пытаюсь объединить 3 таблицы в CActiveDataProvider, чтобы помочь мне упорядочить вещи полностью и лучше. Но я изо всех сил пытаюсь правильно записать аранжировку. Я разместил комментарии, чтобы попытаться помочь определить, что мне нужно. Я могу сделать это в SQL, но в идеале я хотел бы сделать это в Active Record.

Таблица элементов: FK = идентификатор таблицы областей

Таблица областей: берет $id из функции для выбора области.

Избранная таблица: FK = Item_id

$dataProvider=new CActiveDataProvider('Item', array(
        'criteria' => array(
        'with' =>'sector', // and need 'featureditem'
        'condition' =>'t.sector_id=:id', // t.id = featureditem.item_id
        'params' => array(':id'=>$id), // is the area to search in
        'order' => 'featureditem.item_id DESC', 
    )
));

person Jonnny    schedule 27.06.2013    source источник
comment
Нам нужно больше деталей. Каков требуемый результат? Каков реальный результат? Есть ли сообщение об ошибке? Если так, то, что это?   -  person topher    schedule 27.06.2013


Ответы (1)


Кажется, то, что вы хотите, может быть достигнуто с помощью INNER JOIN:

$dataProvider=new CActiveDataProvider('Item', array(
    'criteria' => array(
        'with' =>'sector',
        'condition' =>'t.sector_id=:id',
        'params' => array(':id'=>$id),
        'order' => 'fi.item_id DESC',
        'join' => 'INNER JOIN featureitem fi ON fi.item_id=t.id',
    )
));
person Michael Härtl    schedule 27.06.2013
comment
Большое спасибо! Я совершенно неправильно понял CActiveDataProvider при работе с более чем двумя моделями. - person Jonnny; 27.06.2013