jeffersonsimaogoncalves / cakephp-api-pagination
CakePHP 3 插件,用于将分页信息注入 API 响应中。
2.0.0
2020-11-09 12:37 UTC
Requires
- php: ^7.2
- cakephp/cakephp: ^4.0
README
这是一个简单的 CakePHP 3 组件,它将 CakePHP 的 Paginator 中的分页信息注入到序列化的 JsonView 和 XmlView 响应中。
安装
通过 Composer
$ composer require bcrowe/cakephp-api-pagination
在应用程序的 bootstrap.php
文件中加载插件
Plugin::load('BryanCrowe/ApiPagination');
用法
确保您的应用程序已配置为使用数据视图;请参阅 CakePHP 文档中的启用应用程序中的数据视图部分。
然后,加载 ApiPaginationComponent
$this->loadComponent('BryanCrowe/ApiPagination.ApiPagination');
然后,设置您的分页视图变量,如下所示
$this->set('articles', $this->paginate($this->Articles)); $this->set('_serialize', ['articles']);
注意:您的 _serialize
变量必须是数组,例如 ['articles']
,这样分页信息就可以在它自己的分页键下设置。
您的 JsonView 和 XmlView 响应现在将包含分页信息,如下所示
{ "articles": ["...", "...", "..."], "pagination": { "finder": "all", "page": 1, "current": 20, "count": 5000, "perPage": 20, "prevPage": false, "nextPage": true, "pageCount": 250, "sort": null, "direction": false, "limit": null, "sortDefault": false, "directionDefault": false } }
配置分页输出
ApiPagination 有三个配置键:key
、aliases
和 visible
。
-
key
允许您更改分页键的名称。 -
aliases
允许您更改分页详细键的名称。 -
visible
允许您设置在响应中公开哪些分页键。 注意:在设置键的可见性时,如果已赋予别名,请确保使用别名。
使用所有这些配置键的示例
$this->loadComponent('BryanCrowe/ApiPagination.ApiPagination', [ 'key' => 'paging', 'aliases' => [ 'page' => 'currentPage', 'current' => 'resultCount' ], 'visible' => [ 'currentPage', 'resultCount', 'prevPage', 'nextPage' ] ]);
此配置将产生
{ "articles": ["...", "...", "..."], "paging": { "prevPage": false, "nextPage": true, "currentPage": 1, "resultCount": 20 } }
变更日志
请参阅 CHANGELOG 了解最近更改的更多信息。
测试
$ composer test
贡献
请参阅 CONTRIBUTING 和 CONDUCT 了解详细信息。
安全性
如果您发现任何与安全性相关的问题,请通过电子邮件 bryan@bryan-crowe.com 而不是使用问题跟踪器。
致谢
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件。