Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在存储库级别的Doctrine2 ORM中实现分页的最佳实践_Php_Orm_Doctrine Orm_Doctrine_Pagination - Fatal编程技术网

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

Php 在存储库级别的Doctrine2 ORM中实现分页的最佳实践,php,orm,doctrine-orm,doctrine,pagination,Php,Orm,Doctrine Orm,Doctrine,Pagination,我知道,但它在DQL级别工作。我要寻找的是一种在存储库级别实现分页的方法 我看到的第一种方法是在回购协议中加入分页: 通过使其所有方法接受两个附加参数,$offset和$limit,或 通过在我的回购中实施setOffset和setLimit方法,这些方法将影响所有的find…方法(由于DefaultRepositoryFactory实施,这是不好的) 另一种方法是创建一个ResultBuilder类,如中所示。我真的不喜欢这种方法,因为它适用于预取的结果集,这使得额外的数据检索,即使在条

我知道,但它在DQL级别工作。我要寻找的是一种在存储库级别实现分页的方法

  • 我看到的第一种方法是在回购协议中加入分页:

    • 通过使其所有方法接受两个附加参数,
      $offset
      $limit
      ,或

    • 通过在我的回购中实施
      setOffset
      setLimit
      方法,这些方法将影响所有的
      find…
      方法(由于
      DefaultRepositoryFactory
      实施,这是不好的)

  • 另一种方法是创建一个
    ResultBuilder
    类,如中所示。我真的不喜欢这种方法,因为它适用于预取的结果集,这使得额外的数据检索,即使在条令的延迟加载情况下也是如此


对于Doctrine2 ORM用户来说,还有哪些其他方法可以解决此问题?我发现的一个可能的解决方案是,如中所述,制作一个相应的过滤器(使用限制语句),并在使用回购的查询方法(包括自定义)之前将该过滤器应用于回购