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)。有关更多信息,请参阅 许可文件。