【发布时间】:2018-05-25 04:38:36
【问题描述】:
我正在使用此代码进行简单的分页:
$paginate = array(
'limit' => 30,
'fields' => array('DISTINCT Doctor.id','Doctor.*'),
'order' => array('Doctor.id' => 'desc'),
'joins' => array(
array('table' => 'doctors_medical_degrees',
'alias' => 'DoctorsMedicalDegree',
'type' => 'INNER',
'conditions' => array(
'Doctor.id = DoctorsMedicalDegree.doctor_id',
)
),
),
'recursive' => -1,
);
$this->Paginator->settings = $paginate;
$data = $this->Paginator->paginate('Doctor');
现在的问题是我使用的是内连接,所以对于 Distinct 结果我使用的是 Distinct Doctor.id,但是 cakephp 在查询分页时计数查询不包括 Distinct Doctor.id
'query' => 'SELECT COUNT(*) AS `count` FROM `pharma`.`doctors` AS `Doctor` INNER JOIN `pharma`.`doctors_medical_degrees` AS `DoctorsMedicalDegree` ON (`Doctor`.`id` = `DoctorsMedicalDegree`.`doctor_id`)'
如你所见,没有
COUNT(DISTINCT Doctor.id)
所以分页返回更多的结果,它实际上可以返回
【问题讨论】:
-
请务必提及您的确切 CakePHP 版本!
-
我使用的是 CakePHP 2.4.3 版,感谢您的建议。
标签: cakephp pagination