在存储库级别上在Doctrine2 ORM中实现分页的最佳实践

时间:2013-08-19 09:03:08

标签: php orm doctrine-orm doctrine pagination

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

  • 我看到的第一种方式是在回购中填充分页:

    • 让所有方法接受另外两个参数$offset$limit,或

    • 在我的仓库中实施setOffsetsetLimit方法会影响其所有find...方法(由于DefaultRepositoryFactory实施而效果不佳, which behaves as a Singleton Factory)。

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

该主题还有哪些其他方法,哪种方法最适合Doctrine2 ORM用户?

1 个答案:

答案 0 :(得分:0)

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