J'ai essayé de créer une pagination sur mon site Web à l'aide de l'ensemble KnpPaginator. Dans mon dépôt Je crée une requête:Créer un paginate à l'aide de KnpPaginator
public function getProductsOrderByDateDesc($id_category = null, $max = null){
$qb = $this->createQueryBuilder('p')
->orderBy('p.created_at', 'DESC');
if($max) {
$qb->setMaxResults($max);
}
if($id_category) {
if(is_array($id_category)){
$aIdCategory = implode("','",$id_category);
$qb->andWhere('p.category IN (:ids)')
->setParameter('ids', $aIdCategory);
}else{
$qb->andWhere('p.category = :category_id')
->setParameter('category_id', $id_category);
}
}
$query = $qb->getQuery();
return $query->getArrayResult();
}
Dans mon contrôleur je fais:
$repositoryProduct = $em->getRepository('ShopDesktopBundle:Product');
$aProducts = array();
$aProducts = $repositoryProduct->getProductsOrderByDateDesc($id);
$paginator = $this->get('knp_paginator');
$pagination = $paginator->paginate(
$aProducts,
$this->get('request')->query->get('page', 1),
3
);
return $this->render('ShopDesktopBundle:Category:category.html.twig',array(
'aProducts' => $aProducts,
'pagination' => $pagination
));
Etant donné que je montre que cette Pagination:
<div class="navigation">
{{ knp_pagination_render(pagination) }}
</div>
Le problème est que toujours affiche tous les produits non seulement la limite qui pour mon exemple est 3. Par exemple: J'ai 9 produits, limite = 3, la pagination est correcte "1 2 3 "mais pour chaque page je vois tous les 9 produits Aidez-moi s'il vous plaît! Thx à l'avance
maintenant à Pagination travail doen't. Toujours rester sur la page = 1 – TanGio
Veuillez lire attentivement la documentation, il y a un exemple complet sous 'Controller' qui indique que vous devez utiliser l'objet Request pour que la pagination fonctionne: '$ request-> query-> get ('page' , 1) ' – Richard