首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Symfony2中使用Pagerfanta分页的正确方法是什么?

在Symfony2中使用Pagerfanta分页的正确方法是什么?
EN

Stack Overflow用户
提问于 2012-09-10 13:39:53
回答 2查看 15.8K关注 0票数 8

我读过Pager凡塔是Symfony2选择的分页插件,但我很难让它正常工作。我已经下载了页面幻想和PagerfantaBundle的代码,并按照WhiteOctober Github自述文件本教程中描述的方式安装了它们。我很确定我的控制器中的代码没有问题,但是我的模板文件有问题。

我的控制器代码:

代码语言:javascript
复制
public function indexAction($page =  null)
{
    ...
    $query = $em->createQuery('SELECT something FROM some_table');
    $adapter = new DoctrineORMAdapter($query);
    $pager =  new Pagerfanta($adapter);
    $pager->setMaxPerPage(10);
    if (!$page)    $page = 1;
    try  {
        $pager->setCurrentPage($page);
    }
    catch(NotValidCurrentPageException $e) {
      throw new NotFoundHttpException('Illegal page');
    }
    return $this->render('MyBundle:MyEntity:index.html.twig', array(
        'pager' => $pager,
    ));
}

在我的模板中:

代码语言:javascript
复制
...
<table>
  {% for object in pager.currentPageResults %}
    <tr>
      <td>{{ object.attribute1 }}</td>
      <td>{{ object.attribute2 }}</td>
      <td>{{ object.attribute3 }}</td>
    </tr>
  {% endfor %}
</table>

{% if pager.haveToPaginate %}
  {{ pagerfanta(pager) }}
{% endif %}

当我进入页面时,我会得到前10个对象的列表。然而,寻呼机的呈现只是PreviousNext作为一个单词(不是链接,也没有页面1、2、3等)。

如果我将?page=2添加到URL中,它将不会显示列表中接下来的10项。

在添加分页代码之前,我没有更改路径,因为文档中说:

使用变量" page“自动生成当前路由的路由,以传播页号。

..。但我不知道不正确的路由是否是问题的一部分。假设是这样的话,我不知道如何继续下去。

我一直找不到任何指示,其他来源,我已经链接到上面,所以如果有人谁已经成功地实现了这一点,可以分享细节,他们如何做到这将是很好的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-26 19:41:12

我认为您的应用程序不知道如何将?page=2解析为控制器操作。

在您的路由中包含一个{page} (如@AdrienBrault回复),您希望对其进行分页。

就像这样:

代码语言:javascript
复制
my_index:
  pattern:  /{page}
  defaults: { _controller: MyTestBundle:Object:index, page: 1 }
  requirements:
    _method:  GET
    page: \d+

PagerFantaBundle将(我猜)尝试猜测正确的路线。

为我工作过。

票数 6
EN

Stack Overflow用户

发布于 2017-02-22 18:42:56

在路由过程中,我不得不使用“currenPage”而不是“page”,我找到了一种方法:

{{ pagerfanta(pager, 'my_pager_view', {'pageParameter':'[currentPage]'}) }}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12352945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档