2013-06-27 101 views
1

我想加入CActiveDataProvider中的3個表格,以幫助我完成和更好地完成任務。但我正在努力妥善地安排這項安排。我已經發表了評論來幫助概述我所追求的內容。我可以在SQL中做到這一點,但我希望在Active Record中理想。Yii CactiveDataProvider muiltiple表加入

項目表: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', 
    ) 
)); 

由於任何人誰可以幫助我,這一直在困擾我很多年。

強尼

+0

我們需要更多的細節。需要的結果是什麼?什麼是實際結果?是否有錯誤訊息?如果是這樣,它是什麼? – topher

回答

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', 
    ) 
)); 
+0

非常感謝!在處理超過2個模型時,我完全誤解了CActiveDataProvider。 – Jonnny