CakePHP 5:如何获取分页检索的记录总数

问题描述 投票:0回答:1

我正在从 cakephp 4 迁移到 5.x,并且在 API 中我需要返回分页数据。

在 cakephp 4.x 中

$paging = $this->request->getAttribute("paging");
$paginacao = [];
foreach ($paging as $p):
  $paginacao = [
    "count" => $p["count"],
    "current" => $p["current"],
    "perPage" => $p["perPage"],
    "page" => $p["page"],
    "requestedPage" => $p["requestedPage"],
    "pageCount" => $p["pageCount"],
    "start" => $p["start"],
    "end" => $p["end"],
    "prevPage" => $p["prevPage"],
    "nextPage" => $p["nextPage"],
  ];
endforeach;

在 cakephp 5 中?

cakephp
1个回答
0
投票

在 CakePhp5 中,当您对结果集进行分页时,可以使用 PaginatorHelper。为了使用它,您必须将其加载到您的 AppView 上,如下所示:

$this->loadHelper('Paginator');

$this->loadHelper('Paginator', ['templates' => 'paginator-templates']);

您可以在控制器上以这种方式使用它(示例):

$this->set('articles', $this->paginate($this->Articles));

$query = $this->Articles->find('published')->contain('Comments');
$this->set('articles', $this->paginate($query));

您可以更改分页器选项:

protected array $paginate = [
        'limit' => 25,
        'order' => [
            'Articles.title' => 'asc',
        ],
    ];

您可以像这样检索总数:

$this->Paginator->total();

更多文档:

分页蛋糕Php5

PaginatorHelper CakePhp5

© www.soinside.com 2019 - 2024. All rights reserved.