gpt4 book ai didi

php - Cake PHP 中的自定义分页

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:09:41 25 4
gpt4 key购买 nike

我是 cakePHP 的初学者,我不想在 cakePHP 中创建自定义分页。

函数 $paginator->numbers() ; 它像这样显示页码:

1 | 2 | 3 | 4 | ...

通过查看选项,有一些选项可以更改分隔符、添加样式类 css 等。

我想要的是这样的分页:

1-20 21-40 41-60 61-80 ... >>

有人知道如何编码吗?

编辑:

我在以下位置创建了自定义分页助手:app/View/Helper/

并且我已经将我的 CustomPaginatorHelper 添加到我的 Controller 的 $helpers 中,如下所示:

public $helpers = array('CustomPaginator', 'Html', 'Form', 'Js');

但是我得到了这个错误:

Fatal error: Class 'PaginatorHelper' not found in /Applications/MAMP/htdocs/QRCode/app/View/Helper/CustomPaginatorHelper.php on line 2

他好像不知道 PaginatorHelper !!!我应该在哪里添加我的自定义 Paginator ??

注意:您的函数 numbers() 将仅显示分页格式:1-20 21-40 ...等,但没有指向我认为的页面的链接:)

编辑 2:

我添加了 App::set('PaginatorHelper','/View/Helper/'); 并且我不再收到此错误。现在我尝试像这样调用自定义分页器的 numbers() 方法:

$this->CustomPaginator->numbers(); 

但是我得到这个错误:

Fatal error: Call to a member function numbers() on a non-object in /Applications/MAMP/htdocs/QRCode/app/View/Codes/index.ctp on line 71

这个错误的来源是什么?我试图将我的 customPaginatorHelper 添加到我的 Controller 的 $helpers 变量中,但我仍然遇到同样的错误;有任何想法吗 ?

提前致谢

最佳答案

这里要知道的关键是有一个分页器组件(在 Controller 中使用)和一个分页器助手(在 View 中使用)。您使用的是 PaginatorHelper 类,它处理与分页相关的元素的呈现。

不幸的是,您无法通过 PaginatorHelper 实现您想实现的目标。如果您想这样做,最好的方法是扩展 PaginatorHelper 类并覆盖 numbers() 方法以返回您想要的内容。

我已经查看了那个特定的方法,遗憾的是它并不好——它超过了 100 行!但是,我创建了一个类,该类对 PaginatorHelper 进行子类化并覆盖该方法。由于原始方法太长,需要大量复制和粘贴,因此我没有直接将其放在这个答案中。

您可以在这里查看:https://gist.github.com/2037902

您还需要将 CustomPaginator 添加到 Controller 中的助手列表中。

关于php - Cake PHP 中的自定义分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9636228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com