我希望CGridView中的每个相关对象都有单独的行。
ModelB有modelAId,所以它是HAS_MANY关系。
以下查询返回我想要获取的内容:
select * from modelA a
join modelB b on b.modelAId = a.id
这里我为每个相应的modelB行获取单独的行,来自modelA的记录可能会重复。
但是,以下提供程序未返回预期记录,如何在CActiveDataProvider中使用它?
$provider = new CActiveDataProvider ("ModelA", array ("criteria" => array (
"with" => array("ModelB")
)
));
如果我添加加入“join”=> “在b.modelAId = t.id上加入modelB b”,并用()删除它给出正确的记录,但是当我包含with()时它只给出了modelA记录。
从ModelA获取数据的正确方法是什么?包含ModelB关系的单独行?
答案 0 :(得分:0)
您可以轻松地使用 cDbCriteria
$criteria=new cDbCriteria();
$criteria->with=array('ToModelB'); //Here ToModelB is defined relation in ModelA to ModelB
$dataProvider=new CActiveDataProvider('ModelA',array('criteria'=>$criteria));
但在此之前,请确保为这两个模型定义了正确的关系。