CActiveDataProvider生成自动查询以计数总项数:
SELECT COUNT(DISTINCT `t`.`id`) FROM `transaction` `t` LEFT OUTER JOIN `partner` `partner` ON (`t`.`partner_id`=`partner`.`id`)这个查询很慢,因为包含连接,我如何设置手动总计数,并禁用这个自动查询?
发布于 2015-07-14 12:27:22
您可以手动将总项目计数设置为CActiveDataProvider,以防止自动计算。
class Model extends CActiveRecord {
public function search(){
$criteria = new CDbCriteria;
// your criteria here
$data_provider = new CActiveDataProvider($this, array('criteria'=>$criteria));
// replace $this->count( $criteria ) with your own condition or another criteria
$data_provider->setTotalItemCount( $this->count( $criteria ) );
return $data_provider;
}
}发布于 2015-07-14 11:16:41
尝试设置使用CActiveDataProvider->countCriteria。http://www.yiiframework.com/doc/api/1.1/CActiveDataProvider#countCriteria-detail
https://stackoverflow.com/questions/31404689
复制相似问题