如何在树枝模板上显示分页

时间:2014-09-11 10:02:52

标签: symfony doctrine-orm pagination twig

这就是控制器上的分页工作方式

 /**
     *@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())); 
    }

现在我只需要为URL传递pageNumber和pageSize(它到目前为止工作)

  

/评价/前PAGENUMBER = 1&安培;?的pageSize = 3

我需要知道的是如何显示这样的结果 pagination

我一直在努力完成这一步,因为我不知道如何计算结果数量以及如何让“下一个”和之前的按钮工作

1 个答案:

答案 0 :(得分:3)

请查看 KnpLabs/KnpPaginatorBundle

这是 TOP 10% 最常用的捆绑包之一。

该软件包提供了可重写的default templates,用于呈现分页按钮,并且很容易集成到您的项目中。

如果您不想使用捆绑包......它的源代码绝对是寻找灵感的好地方。


您当前的实施缺少第二个前期查询来获取帖子的总数

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