1

我正在尝试在 CActiveDataProvider 中加入 3 个表,以帮助我完全更好地订购东西。但我正在努力正确安排。我已经发表了评论,试图帮助概述我所追求的。我可以在 SQL 中很好地做到这一点,但理想情况下我想在 Active Record 中做到这一点。

项目表:FK = 面积表 ID

区域表:从函数中获取 $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', 
    )
));
4

1 回答 1

2

看来您想要的可以通过以下方式实现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',
    )
));
于 2013-06-27T11:09:02.050 回答