如何解决如何限制cakephp中的分页符
| 如何限制cakePHP中的分页? 假设我有400条记录。 我只需要从25条记录到75条记录中获得25条记录 并且每页需要显示5条记录。 我该如何做到分页? 样例代码: $this->paginate = array(
\'contain\'=>array(\'User\'),\'recursive\' => 2,\'order\' => array(\'Profile.winning\' => \'DESC\'),\'limit\' =>5
);
解决方法
您可以设置分页条件。
function listRecords()
{
$this->paginate = array(
\'conditions\' => array(\'Model.id >=\' => 50,\'Model.id <=\' => 75),\'limit\' => 5
);
$this->paginate(\'Model\');
);
编辑:
来自这里的解决方案:
$this->paginate = array(
\'limit\' => 20,\'totallimit\' => 1000
);
然后在模型中:
public function paginateCount($conditions = null,$recursive = 0,$extra = array())
{
if( isset($extra[\'totallimit\']) ) return $extra[\'totallimit\'];
}
, 参考以下版本的改进版本:http://www.mainelydesign.com/blog/view/best-paginatecount-cakephp-with-group-by-support
这将返回较小的正确总数。
public function paginateCount($conditions = null,$extra = array())
{
$conditions = compact(\'conditions\');
if ($recursive != $this->recursive) {
$conditions[\'recursive\'] = $recursive;
}
unset( $extra[\'contain\'] );
$count = $this->find(\'count\',array_merge($conditions,$extra));
if (isset($extra[\'group\'])) {
$count = $this->getAffectedRows();
}
if (isset($extra[\'totallimit\']) && $extra[\'totallimit\'] < $count) {
return $extra[\'totallimit\'];
}
return $count;
}
, 在CakePHP v2.x中使用ѭ5。
public $paginate = array(
// other keys here.
\'maxLimit\' => 10
);
在这里阅读更多有关它的信息。
, $query = $this->User->find(\'all\',[
\'recursive\' => 2,\'order\' => array(\'Profile.winning\' => \'DESC\'),\'limit\' => 25,\'offset\' => 50
]);
$this->paginate = array(
$query,\'limit\' => 5
);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。