我目前正在使用KNP分页器对结果进行分页。我得到序列化分页器对象,并得到以下形式的响应:
"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?
所需输出:
"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发布于 2016-09-02 21:58:10
您可以通过两种方式进行操作:
1)定义KNP分页器的序列化,定义您想要显示的内容,如here所述(您也可以使用jms订阅者或banzigahatoas包来定义上一个/下一个路由)。控制器中的结果将是:
$paginator = $this->get('knp_paginator');
$data =
$paginator->paginate(
$query, /* query NOT result */
2 /*page number*/,
2/*limit per page*/
);
return $data;2)或者以这种方式手工管理结果:
$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。
希望这对你有所帮助
https://stackoverflow.com/questions/39292962
复制相似问题