我知道 Doctrine 带有一个简单的分页器。不幸的是,有关其使用的文档很少。
如何使用它在每页显示 10 个实体?而且,它是处理实际的寻呼机功能,还是仅仅实现跳过/获取功能?
我知道 Doctrine 带有一个简单的分页器。不幸的是,有关其使用的文档很少。
如何使用它在每页显示 10 个实体?而且,它是处理实际的寻呼机功能,还是仅仅实现跳过/获取功能?
就我而言,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-joins 一起使用;我有一个有 10-15 个连接和几个子查询的,工作得很好。
在您在查询中使用 JOIN 语句之前,Doctrine 寻呼机工作得很好。