[cakephp2.x]pagenateのカウントがおかしい場合。

pagenateのfiledsでDESCENTやgrop byを使うとカウントがおかしくなってしまう場合。

AppModel.phpに以下でpaginateCount()関数をオーバーライドすればいい。

function paginateCount($conditions, $recursive, $extra) {
$parameters = compact('conditions');
if ($recursive != $this->recursive) {
$parameters['recursive'] = $recursive;
}
$count = $this->find('count', array_merge($parameters, $extra, array('fields'=>array('count(0)'))));
if(isset($extra['group'])) {
$count = $this->getAffectedRows();
}
return $count;
}

タイトルとURLをコピーしました