6

从 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";
}

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

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

4

1 回答 1

4

Doctrine 的分页器不是 Symfony 感知的——它是低级的并且是特定于 Doctrine 的。

另一方面,如果你安装了一个 3rd party bundle,你将获得 Doctrine ORM & ODM、Propel、普通数组等的分页适配器。你还将获得 Symfony 集成和视图助手。至少我使用的WhiteOctoberPagerfantaBundle完成了所有这些工作。

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

于 2012-04-11T13:51:35.967 回答