Cakephp paginator跳转多个页面

时间:2016-11-16 05:58:52

标签: php cakephp pagination cakephp-3.0 paginator

我使用cakephp 3.x paginator,我收到了客户的请求。

示例:

  • 我的分页栏,现在它站在#1。

<< | < | **1** 2 3 4 5 6 7 8 9 | > | >>

  • 当我点击&#34;&gt;&gt;&#34;酒吧将显示10-19并且站在#10

<< | < | **10** 11 12 13 14 15 16 17 18 19 | > | >>

  • 点击&#34;&gt;&gt;&#34;再次,它将显示20-29并站在#20

<< | < | **20** 21 22 23 24 25 26 27 28 29 | > | >>

  • 与&#34;&lt;&lt;&#;;相同,将返回10-19和1-9。

&#34;&gt;&#34;和&#34;&lt;&#34;只需转到下一页并返回上一页。

所以我的问题是:

  • 如何制作&#34;&gt;&gt;&#34;和&#34;&lt;&lt;&#;带有cakephp分页助手的按钮?

我在view.ctp中的代码是

<?php 
  echo $this->Paginator->first(<<);

  echo $this->Paginator->prev('<');

  echo $this->Paginator->numbers();

  echo $this->Paginator->next('>');

  echo $this->Paginator->last(>>);
?>

1 个答案:

答案 0 :(得分:1)

不幸的是,没有内置的paginator helper方法可以创建这样的链接,你可能想要file a feature request,我认为这将是一个很好的补充。

话虽这么说,你可以手动构建这样的跳转链接,paginator helper提供所需的一切,即当前页码,检查给定页面是否存在的方法,以及从帮助程序生成链接的功能模板。

这是一个基本示例,如果该页面存在,这将生成当前页面的跳转链接+10:

$page = $this->Paginator->current() + 10;
if ($this->Paginator->hasPage($page)) {
    echo $this->Paginator->templater()->format('nextActive', [
        'url' => $this->Paginator->generateUrl(['page' => $page]),
        'text' => '>>',
    ]);
}

另见

出于某种原因

Templater docs are currently missing ......