2014-09-11 50 views
1

這是控制器上的分頁是如何工作的如何在樹枝模板顯示分頁

/** 
    *@Route("/rating/{page}",name="testing") 
    */ 
    public function pagesAction($page,Request $request) 
    { 
     // retrieve GET variables 
     $pageNumber = $request->query->get('pageNumber'); 
     $pageSize = $request->query->get('pageSize'); 

       $em = $this->getDoctrine()->getManager(); 
       $qb = $em->createQueryBuilder(); 

       $results = $qb->add('select', 'p') 
        ->add('from', 'GabrielUploadBundle:Post p') 
        ->add('where', 'p.upvotes > 100') 
        ->add('orderBy', 'p.createdAt ASC') 
        ->setMaxResults($pageSize) 
        ->setFirstResult($pageSize * ($pageNumber - 1)) 
        ->getQuery(); 


       return $this->render('GabrielLayoutBundle:Worldpage:content_loop.html.twig',array('posts'=>$results->getResult())); 
    } 

現在我只需要通過PAGENUMBER和pag​​eSize的爲URL(它的工作原理至今)

/等級/前?PAGENUMBER = 1 &的pageSize = 3

所有我需要知道的是如何顯示的結果是這樣 pagination

我一直在這個步驟中掙扎,因爲我不知道如何計算結果的數量,以及如何獲得「下一步」按鈕,以前的工作

回答

3

請看一看KnpLabs/KnpPaginatorBundle

這是TOP 10%其中最常用的包之一。

該軟件包提供了可覆蓋的default templates用於渲染分頁按鈕,並且很容易集成到您的項目中。

如果你不想使用該包...它的源代碼絕對是一個尋找靈感的好地方。


您當前的執行缺乏第二先期查詢來獲取職位總數

不知道帖子總數......您將無法確定顯示的按鈕數量。