0

Je {{ knp_pagination_render(pagination1) }} sur la vue InfCustumersBundle:Faktura:indexoryginal.html.twigKNP Pagination Bundle ne montrent pas la pagination sur la même vue renedered

Ce code me montrer paginarion:

public function indexoryginalAction(Request $request) {    
      $em = $this->getDoctrine()->getManager(); 
      $req = $em->getRepository('...:Faktura'); 
      $qb = $req->createQueryBuilder('p'); 
      $search = $qb 
         . 
      . 
        ->getQuery();    
      $form = $this->createFormBuilder() 
       . 
      . 
       ->getForm(); 
     $paginator = $this->get('knp_paginator'); 
     $pagination1 = $paginator->paginate(
       $search, $request->query->get('page', 1)/* page number */, 5/* limit per page */ 
     ); 

     return $this->render('InfCustumersBundle:Faktura:indexoryginal.html.twig', array(
        'pagination1' => $pagination1, 
        'form' => $form->createView() 
     )); 

et ce beau travail, mais le code ci-dessous ne montre pas étiquettes de pagination. Seuls les 3 premiers articles. Où j'ai fait une erreur?

public function indexAction(Request $request, $type = 1) { 

     $data = array(); 
     $form = $this->createFormBuilder() 
       . 
     . 
       ->getForm(); 
     if ($request->isMethod('GET')) { 
      $form->handleRequest($request); 
      if ($form->isSubmitted() && $form->isValid()) { 
      $data = $form->getData(); 
        $name = ($data['for'] == 'name' ? true : false); 
       if ($name) { 
        return $this->Name($form); 
       } 
      }   
       return $this->redirect($this->generateUrl('faktura_oryginal', array(
            $this->get('session')->getFlashBag()->add('error', 'error') 
       )));   
     } 

protected function Name($form) { 

     $em2 = $this->getDoctrine()->getManager(); 
     $req = $em2->getRepository('InfCustomersBundle:Faktura'); 
     $qb = $req->createQueryBuilder('p'); 

     $query2 = $qb 
       . 
       . 
       ->getQuery(); 

     $entities2 = $query2->getResult(); 
     if ($entities2) { 

      $paginator = $this->get('knp_paginator'); 
      $request = $this->get('request_stack'); 
      // $request = $this->getRequest(); 
      $pagination1 = $paginator->paginate(
        $query2, $request->getCurrentRequest()->query->get('page', 1)/* page number */, 3/* limit per page */ 
      );   
       return $this->render('InfCustumersBundle:Faktura:indexoryginal.html.twig', array(
          'pagination1' => $pagination1, 
          'form' => $form->createView() 
       ));   
     } else { 
       return $this->redirect($this->generateUrl('faktura_oryginal', array(        $this->get('session')->getFlashBag()->add('error', 'error') 
       )));   
      } 
     } 
    } 

Répondre

0

J'ai trouvé une solution

je changé:

$entities2 = $query2->getResult(); 
     if ($entities2) { 

à

$pagination1 = $paginator->paginate(
      $query2, $request->getCurrentRequest()->query->get('page',1),25); 
    if (count($pagination1) > 0) { 

et travaille maintenant bien