如何限制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
);
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...