CakePHP 在最后一页输出冗余分页 link

CakePHP outputting redundant pagination link on last page

我在 CakePHP 3.7

中使用自定义 pagination template

模板在config/infinite-scroll-paginator.php。我想将它与 Infinite Scroll jquery plugin 一起使用。因此,所需要的只是每个分页页面 1 link,其中包含 URL 到 "next" 页面(即下一组结果)。

所以在上面的文件中我有:

$config = [
    'nextActive' => '<a class="pagination__next" aria-label="Next" href="{{url}}">{{text}}</a>'
];

在我的控制器中,我首先告诉它使用自定义分页模板:

public $helpers = [
    'Paginator' => ['templates' => 'infinite-scroll-paginator']
];

然后当我想对我的数据进行分页时,我使用自定义查找器(findFilters() 位于 Model/Table/FiltersTable.php 中):

public $paginate = [
    'finder' => 'filters',
];

然后我可以使用它来获取分页数据:

$this->loadModel('Filters');
$rf_keywords = trim($this->request->getQuery('rf_keywords'));

// Pagination
$page = $this->request->getQuery('page') ? (int)$this->request->getQuery('page') : 1;
$this->paginate = ['page' => $page, 'limit' => 100];

$finder = $this
    ->Filters
    ->find('filters', [
        'rf_keywords' => $rf_keywords
    ]);

$data = $this->paginate($finder);
$this->set('data', $data);

然后在我的模板中输出分页器 HTML:

<?= $this->Paginator->next(); ?>

所有这一切都很好。我得到每个页面的 "next" link。假设我有 10 页我得到 URL's:

/get-filters/?page=1
/get-filters/?page=2
...
/get-filters/?page=10

问题是第10页有一个"next"link而它的URL只是

/get-filters

没有更多的页面可以输出,但我仍然得到 link,尽管是无效的。

如何阻止它输出最后一页的link?我认为分页器组件会处理这个问题,因为它知道有多少页是基于我在 $this->paginate?

中的 limit

使用$this->Paginator->hasNext() 哪个returns true or false 取决于是否有"next page".

在模板中:

<?php if ($this->Paginator->hasNext()): ?>
<?= $this->Paginator->next(); ?>
<?php endif; ?>