質問

Doctrine2にDoctrine_Pagerを見つけることができず、クエリの結果をページする方法が本当に必要です。いくつかの代替ページャー(梨、Zend)を使用する方法はありますか?ソリューションが利用可能な場合は、いくつかのサンプルコードも投稿してください。グーグルは私を助けなかったので、人々がそうすることを願っています:)

役に立ちましたか?

解決

私は、強力なポケットベルを含むDoctrine2のこの拡張機能を書きました:

http://github.com/beberlei/doctrineextensions

他のヒント

Doctrine 2.2には、Paginator Helperクラスがあります。 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が推奨されます。ただし、少なくとも言及すべきページネーションバンドルも1つあります。 http://symfony2bundles.org/knplabs/knppaginatorbundle

Pagerfantaとは異なり、KnppaginatorBundleは現在、Zend Paginatorパッケージを依存関係として必要としています。

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

良い3番目の1つのソリューションがあります。 https://github.com/whiteoctober/pagerfanta

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top