如何将mysql查询转换为yii cdbcriteria对象



我有一个模型Reporter

public function relations() {
    return array(
        'video' => array(self::HAS_MANY, 'Video', 'reporter_id'),
    );
}

我有Reporter->search()方法的MySQL查询:

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

如何用CDbCriteria来编写CActiveDataProvider

要将查询写入cactivedataprovider的条件中

选择,加入,小组和订购。

您可以在创建一个新的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一起使用的属性和方法的整个列表:CDBCRITERIA类参考

最新更新