8

Doctrine2でDoctrine_Pagerが見つからないので、クエリ結果をページングする方法が本当に必要です。別のポケットベル(Pear、Zend)を使用する方法はありますか?解決策が利用できる場合は、サンプルコードも投稿してください。グーグルは私を助けてくれなかったので、人々がそうすることを願っています:)

4

5 に答える 5

6

強力なポケットベルを含むDoctrine2用にこの拡張機能を作成しました。

http://github.com/beberlei/DoctrineExtensions

于 2010-08-19T12:58:06.513 に答える
2

Doctrine 2.2には、Paginatorヘルパークラスがあります: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";
}
于 2012-09-14T10:01:36.193 に答える
1

Maksimが述べたように、PagerFantaが推奨されます。ただし、少なくとも言及する必要があるもう1つのページネーションバンドルもあります:http ://symfony2bundles.org/knplabs/KnpPaginatorBundle

PagerFantaとは異なり、KnpPaginatorBundleは現在、依存関係としてzendpaginatorパッケージを必要とします。

于 2011-09-04T23:03:09.617 に答える
0

ただし、注意点として、Query#setMaxResults / Query#setFirstResultは、ページングの基本的なニーズのほとんどをカバーしています。

于 2010-09-16T16:47:33.250 に答える
-1

良い3番目の解決策があります:https ://github.com/whiteoctober/Pagerfanta

とても便利だと思いました

于 2011-07-14T14:25:47.857 に答える