我正在尝试使用 Yii 的分页,一切正常!但是(总是有一个但是^^)为获取对象数量而执行的请求未优化:在我的控制器中,我有以下代码:
<?php
$criteria = new CDbCriteria(array(
'with' => array('series', 'author', 'stars'),
'condition' => "etat = " . 1,
));
$dataProvider = new CActiveDataProvider(News::model(), array(
'pagination' => array(
'pageSize' => 10,
),
'criteria' => $criteria,
));
?>
CPagination 对分页执行的请求是:
SELECT COUNT(DISTINCT `t`.`id`)
FROM `news` `t`
LEFT OUTER JOIN `news_serie` `series_series` ON (`t`.`id`=`series_series`.`id_news`)
LEFT OUTER JOIN `serie` `series` ON (`series`.`id`=`series_series`.`id_serie`)
LEFT OUTER JOIN `user` `user` ON (`t`.`id_user`=`user`.`id`)
LEFT OUTER JOIN `news_stars` `stars_stars` ON (`t`.`id`=`bonhommes_bonhommes`.`id_news`) LEFT OUTER JOIN `stars` `stars` ON (`stars`.`id`=`stars`.`id_stars`)
WHERE (etat = 1)
在这种情况下,这个请求很复杂,我想使用:
SELECT COUNT(DISTINCT `t`.`id`) FROM `news` `t` WHERE (etat = 1)
所以我的问题是:我如何更改获取新闻总数的请求?