2014-09-11 40 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用于渲染分页按钮,并且很容易集成到您的项目中。

如果你不想使用该包...它的源代码绝对是一个寻找灵感的好地方。


您当前的执行缺乏第二先期查询来获取职位总数

不知道帖子总数......您将无法确定显示的按钮数量。