如何在 cakePHP 的控制器中设置分页器页面

Posted

技术标签:

【中文标题】如何在 cakePHP 的控制器中设置分页器页面【英文标题】:How can I set the paginator page from within the controller in cakePHP 【发布时间】:2011-12-02 09:20:23 【问题描述】:

我有一个标准的 cakephp 后端,但我没有使用 cake 分页助手。我现有的前端以“startIndex,numberOfResults”与“page”的形式提供分页参数。如果在控制器操作中我可以解析我的 startIndex、numberOfResults 参数、计算正确的页面然后执行以下操作,那就太好了:

paginate['page'] = $pageNumber;

在 paginate() 调用之前。没有这样的运气。所以我的问题是,如何从控制器中设置分页器页面?作为奖励:蛋糕在哪里解析名为 param 的页面?它在哪里存储用于分页调用的页面值?

【问题讨论】:

$this->paginate['page'] = $pageNumber;应该可以工作,必须在 paginate() 命令之前完成,您也可以在不接触分页的情况下即时进行分页以设置一些参数,您也可以在调用它之前更改传递的参数......结果的数量是控制的限制选项,您还可以在模型中覆盖 paginate()、paginateCount() 并按照您的意愿进行操作:D,请记住,paginate 只是一个 find('all'),您可以覆盖它以满足您作为自定义查询的需求: D,让其余的人发挥它的魔力 更改 $this->params['named']['page']$this->paginate['page'] 对我不起作用。我认为“......不接触分页......”可能是我的解决方案。直到现在才注意到“页面”查找选项。对于其他人 - 如果您使用“页面”查找选项,请不要忘记设置“限制”和“订单”。 仅供参考:不确定是否重要,但这个特定站点是 1.2 站点。 奇怪的是,这些都不起作用,如果您在调用时发布一些代码,也许我们可以为您提供更多帮助:D。分页功能也在 cake/libs/controller/controller.php 我不建议在那里更改它......无论如何,您可以使用您想要在模型中执行分页功能的任何参数覆盖它是如何查找的跨度> 【参考方案1】:

因为它是 1.2 应用程序。您应该尝试像这样更改$this->params['url']['page']

      $this->params['url']['page'] = $pageNumber;

来源:CakePHP 1.2

【讨论】:

以上是关于如何在 cakePHP 的控制器中设置分页器页面的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Material-UI、ReactJS 中从分页中设置分页项的样式?

使Cakephp分页器记住传递的参数

Cakephp:在分页器链接中保留自定义路由参数

直接使用分页器并在关联列上定义排序不起作用

drf分页器

多个 Drupal 分页器模块