19 Fév La Pagination en Symfony 3
Etape 1:
L’installation de KnpPaginatorBundle avec composer:
composer require knplabs/knp-paginator-bundle
Etape 2:
L’ajout du KnpPaginatorBundle au AppKenrnel.php
public function registerBundles()
{
return array(
// ...
new Knp\Bundle\PaginatorBundle\KnpPaginatorBundle(),
// ...
);
}
Etape 3:
L’ajout des paramètres dans config.yml
knp_paginator:
page_range: 5
default_options:
page_name: page
sort_field_name: sort
sort_direction_name: direction
distinct: true
template:
pagination: 'KnpPaginatorBundle:Pagination:sliding.html.twig'
sortable: 'KnpPaginatorBundle:Pagination:sortable_link.html.twig'
Etape 4:
La modification dans notre controller
/* PARTIE USE */
use Doctrine\ORM\Tools\Pagination\Paginator;
use Symfony\Component\HttpFoundation\Request;
public function indexAction(Request $request)
{
$em = $this->getDoctrine()->getManager();
$articles = $em->getRepository('ArticlesBundle:Article')->findAll();
$articles = $this->get('knp_paginator')->paginate( $articles, $request->query->get('page', 1), 2 );
return $this->render('PagesBundle:Default:index.html.twig', array(
'articles' => $articles,
));
}
Etape 5:
L’affichage dans le Twig
{% for article in articles %}
...
{% endfor %}
{{ knp_pagination_render(articles) }}