我希望对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“=>”join modelB b on b.modelAId = t.id",并删除with(),它就会给出正确的记录,但是当包含with()时,它只会给出modelA记录。
从ModelA (包括ModelB关系的单独行)获取数据的正确方法是什么?
发布于 2014-08-18 10:00:00
您可以使用cDbCriteria来实现这一目的。
$criteria=new cDbCriteria();
$criteria->with=array('ToModelB'); //Here ToModelB is defined relation in ModelA to ModelB
$dataProvider=new CActiveDataProvider('ModelA',array('criteria'=>$criteria));但在此之前,请确保为这两个模型定义了适当的关系。
https://stackoverflow.com/questions/25360422
复制相似问题