我使用了两个具有一对多关系的表: campaign和group
此代码仅返回组中的相关活动。
$models = Campaigns::model()->with(array(
'Campgroupassoc' => array('condition' => "groupid=$id"),
))->findAll();而这段代码:
$dataProvider = new CActiveDataProvider('Campaigns', array(
'criteria' => array(
'with' => array(
'Campgroupassoc' => array(
'condition' => "groupid=$id"
)
),
)
));返回不在同一组中的活动。
我做错了什么?Thx
发布于 2014-03-20 20:41:27
'Campgroupassoc' => array(
'condition' => "groupid=:id",
'params'=>array(':id'=>$id)
)此外,最好指定groupid所属的模型。当然,您可以查看SQL数据提供程序正在生成的内容并对其进行分析。
发布于 2014-03-20 21:05:06
编辑
在咨询了Yii的实时聊天后,我发现即使使用eager,它也会导致2次查询而不是1次...
为了解决这个问题,你需要添加:
'together' => TRUEhttps://stackoverflow.com/questions/22532398
复制相似问题