dimmir / paginator-bundle
Symfony 3 的灵活分页组件。专为 REST API 使用而创建
1.0.2
2017-05-22 05:08 UTC
Requires
- php: >=7.0
- doctrine/orm: ^2.5
- jms/serializer: ^1.7
- symfony/framework-bundle: ~3.2
Requires (Dev)
- phpunit/phpunit: 6.0.*
This package is not auto-updated.
Last update: 2024-09-29 01:43:08 UTC
README
Symfony 3 的灵活分页组件。本组件提供了一种简单的方法,将分页功能添加到您的 API 集合中。它易于与 FOSRestBundle 一起使用
安装
您可以使用 composer 安装此组件
composer require dimmir/paginator-bundle
将组件添加到您的 AppKernel.php 文件中
// app/AppKernel.php public function registerBundles() { return array( // ... new DMR\Bundle\PaginatorBundle\PaginatorBundle(), // ... ); }
配置
dmr_paginator: items_per_page: 25 # default number items per page max_items_per_page: ~ # The maximum number of items per page. page_request_parameter_name: page # The name of current page for query parameter client_items_per_page: false # To allow the client to set the number of items per page. items_per_page_request_parameter_name: itemsPerPage # The name of items per page query parameter options: # options fo Paginator fetch_join_collection: true # The option fetchJoinCollection for Doctrine ORM Paginator
使用
当前分页器可以分页
Doctrine\ORM\QueryBuilder
与 FOSRestBundle 一起使用示例
// AppBundle\Controller\UserController.php /** * @View() */ public function cgetAction (Request $request) { $queryBuilder = $this->getDoctrine()->getManager() ->getRepository('AppBundle:User')->createQueryBuilder('u'); $paginator = $this->get('dmr_paginator.service')->pagination($queryBuilder); return new SliderRepresentation($paginator); }
表示
DMR\Bundle\PaginatorBundle\Representation\CollectionRepresentation
{
"items": [
{
"id": 1,
},
],
"pagination": {
"page": 1,
"itemsPerPage": 25,
"totalItemsCount": 40,
"pagesCount": 2
}
}
DMR\Bundle\PaginatorBundle\Representation\SliderRepresentation
{
"items": [
{
"id": 1,
},
],
"previus": 1,
"next": 3
}