如何将mysql查询转换为Yii CDbCriteria对象?

如何将mysql查询转换为Yii CDbCriteria对象?,yii,Yii,我有一个模特记者 public function relations() { return array( 'video' => array(self::HAS_MANY, 'Video', 'reporter_id'), ); } 我有一个mysql查询Reporter->search()方法: SELECT t.*, COUNT(t1.id) AS 'reports' FROM reporter AS t LEFT JOIN video AS t1 ON

我有一个模特
记者

public function relations() {
    return array(
        'video' => array(self::HAS_MANY, 'Video', 'reporter_id'),
    );
}
我有一个mysql查询
Reporter->search()
方法:

SELECT t.*, COUNT(t1.id) AS 'reports'
FROM reporter AS t
LEFT JOIN video AS t1 ON t.id = t1.reporter_id  
GROUP BY t.id
ORDER BY t.name

如何使用
CActiveDataProvider
将其写入
CDbCriteria
中?

要将该查询写入CActiveDataProvider的条件中,您需要从CDbCriteria设置以下属性:

,, , ,及

然后,您可以在创建新的CActiveDataProvider对象时设置它们,如下所示:

$dataProvider=new CActiveDataProvider('Reporter', array(
    'criteria'=>array(
        'select'=>'`t`.*, count(`t1`.`id`) as `reports`',
        'join'=>'LEFT JOIN `video` AS `t1` ON `t`.`id` = `t1`.`reporter_id`',
        'group'=>'`t`.`id`',
        'order'=>'`t`.`name`',
    ),
));
您可以在此处找到可与CDbCriteria一起使用的全部属性和方法列表: