Может торможу конечно, но…
в модели Item
public function relations()
{
return array(
'fotos'=>array(self::HAS_MANY, 'Fotos', 'itemID'),
'categories'=>array(self::MANY_MANY, 'Category', 'ItemCategory(itemID, categoryID)',
),
);
}
хочу вывести записи по конкретной категории $catid:
$withOption = array();
$withOption['categories']['alias']='categories';
$withOption['categories']['condition']="??.id='{$catid}'";
$criteria=new CDbCriteria;
$criteria->select = array('id','name');
$itemList=Item::model()->with($withOption)->findAll($criteria);
получаю полный список item безотносительно к $catid
запрос SQL выглядит так:
SELECT Item.id AS t0_c0, categories.id AS t1_c0, categories.name AS t1_c1, categories.description AS t1_c2, categories.is_visible AS t1_c3 FROM Item LEFT OUTER JOIN ItemCategory categories_categories ON (Item.id=categories_categories.itemID) LEFT OUTER JOIN Category categories ON (categories.id=categories_categories.categoryID) AND (categories.id='3') WHERE (Item.id IN (2, 30, 31, 32, 33, 34, 35))
и результат такой:
хотя я надеялся увидеть такой:
что я делаю неправильно?