CakePHP分页限制辅助程序

CakePHP分页限制辅助程序,cakephp,Cakephp,是否可以更改查看文件中记录的限制 鉴于此,我尝试: localhost/project/users/index/limit:25 localhost/project/users/index/limit:10 但没有成功,它始终显示控制器中指定的10条记录 public function index() { $this->Paginator->settings = array( 'conditions' => array(), 'limit' =>

是否可以更改查看文件中记录的限制

鉴于此,我尝试:

 localhost/project/users/index/limit:25
 localhost/project/users/index/limit:10
但没有成功,它始终显示控制器中指定的10条记录

public function index() {
 $this->Paginator->settings = array(
    'conditions' => array(),
    'limit' => 10
 );
 $data = $this->Paginator->paginate('Recipe');
 $this->set(compact('data'));
);

您不能修改视图文件中的组件选项,因为组件是MVC中控制器的一部分。如果您需要更改Paginator组件的“限制”选项,则应在控制器中进行更改,而不要在视图文件中进行更改

在控制器中设置默认全局设置

class YourController extends AppController
{
   var $paginate = array( 'limit' => 10 );
   public function index()
   {
   //...
   }
}
现在您的url参数应该可以工作了。考虑设置<代码>最大限制< /代码>。
在索引函数中设置
limit
时,覆盖url参数。

则不应在设置中设置限制。或者只有在没有通过URL传递的参数时才设置限制。@标记但其他参数,如
顺序:
,即使已设置,也会被覆盖,为什么不进行限制?这是一个好问题:哪些字段可以覆盖,哪些字段不能覆盖。可能是因为它通常是通过“排序”和“方向”构建的。我通常不使用Paginator->settings,而是直接使用$paginate。@mark我做了一些测试来回答这个问题,我发现如果设置了
maxLimit
参数,那么
limit
参数可以被覆盖,否则就不会被覆盖。你能解释一下这种行为的原因吗?不,不完全是,maxLimit只是设置了允许的最大限制。这通常是100左右,以避免因请求的数据集过大而导致服务器失败的攻击。他不尝试在视图文件中设置。他指的是他可以点击的链接。。