Этот бандл позволяет добавить постраничную навигацию в свой проект на Symfony2.
Установка через Composer - менеджер php пакетов
$ composer require evheniy/simple-pagination-bundle "1.*"
Или добавить в composer.json:
"evheniy/simple-pagination-bundle": "1.*"
AppKernel:
public function registerBundles() { $bundles = array( ... new Evheniy\SimplePaginationBundle\SimplePaginationBundle(), ); ...
Контроллер
$pagination = $this->container->get('pagination'); $pageParameter = 'page';//имя параметра $page = $request->get($pageParameter, 1);//номер страницы $size = $request->get('size', 10);//количество результатов поиска на странице $range = 10;//количество ссылок навигации ... return $this->render( 'AppBundle:Default:index.html.twig', array( ... 'pagination' => $pagination->paginate( $request->get('_route'), $resultsCount, $page, $size, $range, $request->query->all() $pageParameter ) ) );
Добавте эту строку в основной шаблон:
Версия для шаблона с использованием TwitterBootstrap
{% include "SimplePaginationBundle::pagination.bootstrap.html.twig" %}
Или простой вариант:
{% include "SimplePaginationBundle::pagination.html.twig" %}
Но не забудьте добавить стили, например такие:
<style> .pagination { text-align: center; } .pagination span a { display: inline-block; padding: 4px 8px; margin: 3px; font-size: 12px; font-weight: normal; line-height: 1.42857143; text-align: center; white-space: nowrap; vertical-align: middle; cursor: pointer; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; border: 1px solid transparent; border-radius: 4px; color: #333; background-color: #fff; border-color: #ccc; } .pagination span a:hover { color: #333; text-decoration: none; } .pagination span a:active { outline: thin dotted; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } .pagination span.current { display: inline-block; padding: 4px 8px; margin-bottom: 0; font-size: 14px; font-weight: bold; line-height: 1.42857143; text-align: center; white-space: nowrap; vertical-align: middle; cursor: pointer; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; background-image: none; border: 1px solid transparent; border-radius: 4px; color: #333; background-color: #fff; border-color: #ccc; } </style>
Лицензия
Этот бандл использует лицензию MIT.