首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >覆盖KNP分页器实体

覆盖KNP分页器实体
EN

Stack Overflow用户
提问于 2016-09-02 20:54:08
回答 1查看 1.2K关注 0票数 1

我目前正在使用KNP分页器对结果进行分页。我得到序列化分页器对象,并得到以下形式的响应:

代码语言:javascript
复制
  "current_page_number": 1
  "num_items_per_page": 5
  "items": [5]
  "total_count": 35
  "paginator_options": {
  "pageParameterName": "page"
  "sortFieldParameterName": "sort"
  "sortDirectionParameterName": "direction"
  "filterFieldParameterName": "filterField"
  "filterValueParameterName": "filterValue"
  "distinct": true
  }-
  "custom_parameters": [0]
  "route": "api_tags_list"
  "params": [0]
  "page_range": 5
  "template": "KnpPaginatorBundle:Pagination:sliding.html.twig"
  "sortable_template": 
  "KnpPaginatorBundle:Pagination:sortable_link.html.twig"
  "filtration_template": 
  "KnpPaginatorBundle:Pagination:filtration.html.twig" 

是否可以覆盖KNP分页器实体,以便响应不包含templates而包含total number of pages

所需输出:

代码语言:javascript
复制
  "current_page_number": 1
  "num_items_per_page": 5
  "items": [5]
  "total_count": 35
  "paginator_options": {
  "pageParameterName": "page"
  "sortFieldParameterName": "sort"
  "sortDirectionParameterName": "direction"
  "filterFieldParameterName": "filterField"
  "filterValueParameterName": "filterValue"
  "distinct": true
  }-
  "custom_parameters": [0]
  "route": "api_tags_list"
  "params": [0]
  "page_range": 5
  "total_page_number": 7
EN

回答 1

Stack Overflow用户

发布于 2016-09-02 21:58:10

您可以通过两种方式进行操作:

1)定义KNP分页器的序列化,定义您想要显示的内容,如here所述(您也可以使用jms订阅者或banzigahatoas包来定义上一个/下一个路由)。控制器中的结果将是:

代码语言:javascript
复制
 $paginator  = $this->get('knp_paginator');
        $data =
            $paginator->paginate(
                $query, /* query NOT result */
                2 /*page number*/,
                2/*limit per page*/
            );
         return $data;

2)或者以这种方式手工管理结果:

代码语言:javascript
复制
$paginator  = $this->get('knp_paginator');
        $data =
            $paginator->paginate(
                $query, /* query NOT result */
                2 /*page number*/,
                2/*limit per page*/
            );
        return [
            'items' => $data->getItems(),
            'pagination' => $this->paginationToArray($data)
        ];

其中,paginatorToArray方法类似于this

希望这对你有所帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39292962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档