【问题标题】:Best practices of implementing pagination in Doctrine2 ORM on repository level在存储库级别在 Doctrine2 ORM 中实现分页的最佳实践
【发布时间】:2013-08-19 09:03:07
【问题描述】:

我知道Doctrine's Paginator,但它适用于 DQL 级别。我正在寻找的是一种在存储库级别实现分页的方法。

  • 我看到的第一种方法是在 repo 中封装分页:

    • 通过使其所有方法接受两个额外的参数,$offset$limit,或者

    • 通过在我的 repo 中实现 setOffsetsetLimit 方法,这将影响它的所有 find... 方法(由于 DefaultRepositoryFactory 实现 which behaves as a Singleton Factory 这不好)。

  • 另一种方法是在this question 中创建一个ResultBuilder 类。我不太喜欢这种方法,因为它适用于预取的结果集,即使使用 Doctrine 的延迟加载,它也会进行额外的数据检索。

还有哪些其他方法可以解决这个问题,哪种方法最适合 Doctrine2 ORM 用户?

【问题讨论】:

    标签: php orm doctrine-orm doctrine pagination


    【解决方案1】:

    我发现的一个可能的解决方案是创建一个相应的过滤器(使用 LIMIT 语句),如official documentation 中所述,并在使用它的查询方法(包括自定义)之前将该过滤器应用于存储库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-03
      • 2013-01-15
      • 1970-01-01
      • 1970-01-01
      • 2011-03-31
      • 2018-07-27
      • 1970-01-01
      相关资源
      最近更新 更多