我在Doctrine2中找不到Doctrine_pager,确实需要一种方法来分页我的查询结果。有没有一种方法可以使用一些其他寻呼机(梨,Zend)?如果有解决方案,请还发布一些示例代码。 Google没有帮助我,所以希望人们能:)

有帮助吗?

解决方案

我为Doctrine2写了此扩展名,其中包含一个强大的寻呼机:

http://github.com/beberlei/doctrineextensions

其他提示

在学说2.2中,有一个吊架助手类: http://docs.doctrine-project.org/en/latest/tutorials/pagination.html

非常易于使用:)

use Doctrine\ORM\Tools\Pagination\Paginator;

$dql = "SELECT p, c FROM BlogPost p JOIN p.comments c";
//build the query for the page you want to display
$query = $entityManager->createQuery($dql)
                       ->setFirstResult(0)
                       ->setMaxResults(10);

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

$c = count($paginator); //automatically makes another query and returns the total number of elements.

//iterating over the paginator iterates over the current page
foreach ($paginator as $post) {
    echo $post->getHeadline() . "\n";
}

如Maksim所述,Pagerfanta推荐。但是,还有另一个分页捆绑包至少应该提及: http://symfony2bundles.org/knplabs/knppaginatorbundle

与Pagerfanta不同,KnppaginatorBundle当前需要Zend Paginator包作为依赖性。

就像注意的那样,查询#setMaxResults / Query#setFirstresult涵盖了分页的大多数基本需求。

有一个很好的第三个解决方案: https://github.com/whiteoctober/pagerfanta

我发现它非常有用

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top