jeffersonsimaogoncalves/cakephp-api-pagination

CakePHP 3 插件,用于将分页信息注入 API 响应中。

2.0.0 2020-11-09 12:37 UTC

This package is auto-updated.

Last update: 2024-09-09 21:25:04 UTC


README

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

这是一个简单的 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 有三个配置键:keyaliasesvisible

  • 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

贡献

请参阅 CONTRIBUTINGCONDUCT 了解详细信息。

安全性

如果您发现任何与安全性相关的问题,请通过电子邮件 bryan@bryan-crowe.com 而不是使用问题跟踪器。

致谢

许可

MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件