Yii CActiveDataProvider返回错误的数据

时间:2014-03-20 12:02:48

标签: php yii pdo dataprovider yii-components

我使用2个表格,其中包含1对多关系:广告系列和群组

此代码仅返回组中的相关广告系列。

 $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

2 个答案:

答案 0 :(得分:0)

'Campgroupassoc' => array(
                    'condition' => "groupid=:id",
                    'params'=>array(':id'=>$id)
                )

最好指定groupid所属的模型。当然,您可以看到SQL数据提供者正在生成和分析它。

答案 1 :(得分:0)

编辑-----

在咨询Yii实时聊天后,我发现即使使用预先加载,也会导致2次查询而不是1次...

为了解决这个问题,您需要添加:

'together' => TRUE