Переопределить сущность PNinator KNP

В настоящее время я работаю с KNP Paginator, чтобы разбить результаты на страницы.
Я получаю сериализованный объект paginator и получаю ответ в следующем виде:

  "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

1

Решение

Вы можете продолжить двумя способами:

1) Определите сериализацию пагинатора KNP, определяя, что вы хотите отобразить, как описано Вот (Вы также можете определить предыдущий / следующий маршрут с подписчиком 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 является чем-то вроде этот.

Надеюсь это поможет

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]