Doctrine2 Paginator

sef*_*rov 6 orm pagination symfony doctrine-orm

从版本2.2开始,Doctrine有Paginator.文档中只有一个示例:

<?php
use Doctrine\ORM\Tools\Pagination\Paginator;

$dql = "SELECT p, c FROM BlogPost p JOIN p.comments c";
$query = $entityManager->createQuery($dql)
                       ->setFirstResult(0)
                       ->setMaxResults(100);

$paginator = new Paginator($query, $fetchJoin = true);

$c = count($paginator);
foreach ($paginator as $post) {
    echo $post->getHeadline() . "\n";
}
Run Code Online (Sandbox Code Playgroud)

这个类没有什么新东西,因为文档中描述的整个过程都可以完成$query->getResult().

我知道有一些关于分页的捆绑包但我不想为这些琐碎的问题安装第三方捆绑包.另一方面,我找不到任何关于教义的分页2.应该有一些有用的方法.我在哪里可以找到它们?如果没有那么整个班级有什么意义呢?

Eln*_*mov 4

Doctrine 的分页器不支持 Symfony \xe2\x80\x94,它是低级的且特定于 Doctrine。

\n\n

另一方面,如果您安装第 3 方捆绑包,您将获得 Doctrine ORM 和 ODM、Propel、普通数组等的分页适配器。您还将获得 Symfony 集成和视图帮助程序。至少我使用的WhiteOctoberPagerfantaBundle可以做到所有这些。

\n\n

因此,除非您只使用 Doctrine,否则我建议您重新考虑您对第 3 方捆绑包的立场。

\n

  • 这并不能回答问题,因为手头的问题没有任何特定于 Symfony 的内容。最好有一个纯理论的解决方案。我遇到了完全相同的问题,并且也想知道 Paginator 类的意义是什么。 (6认同)