【问题标题】:How to display pagination on twig template如何在树枝模板上显示分页
【发布时间】:2014-09-11 10:02:51
【问题描述】:

控制器上的分页是这样工作的

 /**
     *@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 (到目前为止它有效)

/rating/front?pageNumber=1&pageSize=3

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

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

【问题讨论】:

    标签: symfony doctrine-orm pagination twig


    【解决方案1】:

    请查看KnpLabs/KnpPaginatorBundle。

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

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

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


    您当前的实现缺少第二个预先查询来获取帖子总数。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-07
      • 2012-07-27
      • 1970-01-01
      • 1970-01-01
      • 2015-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多