A lightweight symfony2 pagination system
- Twig
>=1.5
version is required if you plan to include the twig template. - Twig
2.*
is allowed
- Inizialization can be made via request or via setters
- Handle route as well as route parameters
Quite easy Composer, add:
{
"require": {
"facile-it/paginator-bundle": "dev-master"
}
}
Or if you want to clone the repos:
git clone git://github.com/facile-it/paginator-bundle.git vendor/facile-it/PaginatorBundle
// app/AppKernel.php
public function registerBundles()
{
return array(
// ...
new Facile\PaginatorBundle\FacilePaginatorBundle(),
// ...
);
}
Currently paginator can paginate:
Doctrine\ORM\QueryBuilder
// Acme\MainBundle\Controller\ProductController.php
$queryBuilder = $this
->get('doctrine.orm.entity_manager')
->getRepository('AcmeMainBundle:Product')
->createQueryBuilder('product')
$paginator = $this->get('facile.paginator')->parseRequest($this->getRequest());
return $this->render('AcmeMainBundle:Product:list.html.twig', array(
'results' => $pagination,
'paginationInfo' => $paginator->getPaginationInfo($filterBuilder
)
);
{# display results #}
<table>
{% for product in results %}
<tr >
<td>{{ product.id }}</td>
<td>{{ product.title }}</td>
</tr>
{% endfor %}
</table>
{# display navigation #}
<div class="navigation">
{% include 'FacilePaginatorBundle:Pagination:template.html.twig' %}
</div>