#symfony #pagination
#symfony #разбивка на страницы
Вопрос:
Все URL-адреса Symfony, которые я использую, — это приятные, понятные для SEO вещи… сайты / новые, сайты / редактировать / 1 и т. Д
Я только что установил пакет разбивки на страницы knp, чтобы получить разбивку на страницы для моих таблиц.
Но генерируемые ссылки выглядят так: app_dev.php/sites?page= 2
Как я могу заставить его использовать обычный стиль ссылки, чтобы страница 2 выглядела так: app_dev.php/sites/2
Любые мысли приветствуются, спасибо.
Ответ №1:
Вам необходимо изменить определение маршрутизации для вашего действия. Что-то вроде этого:
/**
* sitesAction
*
* @Route("/sites/{page}", requirements={"page" = "d "}, defaults={"page" = 1})
*/
public function sitesAction($page = 1)
{
(...)
$paginator = $this->get('knp_paginator');
$pagination = $paginator->paginate(
$query,
$page/*page number*/,
$this->get('request')->query->get('max_per_page', 10)/*limit per page*/
);
return array('pagination' => $pagination);
}
Комментарии:
1. Возможно ли сделать то же самое, используя маршрутизацию. yml-файл? Я не использовал аннотации ни для чего другого, и я хотел бы сохранить его согласованным.
2. Ах, просто для обновления… Я понял это. Просто нужно было добавить /{page} к шаблону и
page: 1
к значениям по умолчанию. Спасибо!