Symfony2中的Doctrine paginator - 我该如何使用这个东西?

时间:2013-05-07 17:05:10

标签: php symfony doctrine-orm

我知道Doctrine带有一个简单的分页器。不幸的是,docs在使用方面非常稀少。

如何使用它每页显示10个实体?并且,它是否处理实际的寻呼机功能,还是仅仅实现跳过/接收功能?

2 个答案:

答案 0 :(得分:4)

Doctrine paginator在我的案例中表现得非常好。我在BaseController中有这个功能(不是来自Symfony):

protected function getDoctrinePaginator(QueryBuilder $qb, $limit=10)
{
    $page = $this->getRequest()->query->get("page", 1) ;
    $qb ->setFirstResult( ( $page-1 ) * $limit)->setMaxResults($limit) ;

    return new Paginator($qb);
}

在模板中,我有这个:

{% for user in paginator %}
{{ user.name }}
{% endfor %}

你必须手动处理订购和$ page值(阅读代码),但它易于使用,与knpPaginator不同,Doctrine与-big- join一起使用;我有一个有10-15个连接和很少的子查询,工作得很好。

答案 1 :(得分:-1)

Doctrine寻呼机非常有效,直到您在查询中使用JOIN语句。

尝试使用this jQuery plugin for paging/search solution