我是cakePHP的初学者,我不想在cakePHP中创建自定义分页.
函数$paginator-> numbers();它显示如下页码:
1 | 2 | 3 | 4 | ...
通过查看选项,有一些选项可以更改分隔符,添加一个样式css ..Etc的类.
我想要的是像我这样的分页:
1-20 21-40 41-60 61-80 ... >>
有人知道如何编码吗?
编辑:
我在:app / View / Helper /中创建了自定义分页器帮助器,
我已经将我的CustomPaginatorHelper添加到我的Controller的$helper中,如下所示:
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?
注意:您的功能号码()将只显示分页的格式: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变量,但我仍然得到相同的错误;有任何想法吗 ?
提前致谢
解决方法:
这里要知道的关键是有一个paginator组件(在控制器中使用)和一个paginator helper(在视图中使用).您正在使用的是PaginatorHelper类,它处理与分页相关联的元素的呈现.
不幸的是,没有办法用PaginatorHelper做你想做的事.如果要执行此操作,最好的方法是扩展PaginatorHelper类并覆盖numbers()方法以返回所需内容.
我已经看过那个特殊的方法,遗憾的是它并不好 – 它超过100行!但是,我创建了一个继承PaginatorHelper并重写该方法的类.由于原始方法太长,所以复制和粘贴很多,因此我没有将它直接放在这个答案中.
您还需要将CustomPaginator添加到控制器中的帮助程序列表中.
标签:php,cakephp-2-0,paginator
来源: https://codeday.me/bug/20190609/1208169.html