【问题标题】:How to page Doctrine2 results [closed]如何分页 Doctrine2 结果 [关闭]
【发布时间】:2011-03-30 15:14:17
【问题描述】:

我在 Doctrine2 中找不到 Doctrine_Pager,我真的需要一种方法来分页我的查询结果。有没有办法使用一些替代寻呼机(Pear,Zend)?如果解决方案可用,请发布一些示例代码。谷歌没有帮助我,所以希望人们会:)

【问题讨论】:

    标签: doctrine pager


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      推荐使用 Maksim 提到的 PagerFanta。但是,还有一个至少应该提到的分页包:http://symfony2bundles.org/knplabs/KnpPaginatorBundle

      与 PagerFanta 不同,KnpPaginatorBundle 目前需要 zend 分页器包作为依赖项。

      【讨论】:

        【解决方案3】:

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

        我觉得很有用

        【讨论】:

          【解决方案4】:

          请注意,Query#setMaxResults / Query#setFirstResult 涵盖了分页的大部分基本需求。

          【讨论】:

            【解决方案5】:

            我为包含强大寻呼机的 Doctrine2 编写了这个扩展:

            http://github.com/beberlei/DoctrineExtensions

            【讨论】:

            • 代码看起来很不错,迫不及待想试试,谢谢
            • @timdev,你能给出一个示例代码,我们如何使用 Zend_Paginator 和 DoctrineExtensions\Paginate\PaginationAdapter 或 DoctrineExtensions\Paginate\Paginate ???
            猜你喜欢
            • 2015-02-16
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-09-15
            • 2016-01-12
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多