Symfony Doctrin2 Paginator,getArrayResult

Symfony Doctrin2 Paginator,getArrayResult,symfony,doctrine-orm,pagination,Symfony,Doctrine Orm,Pagination,我正在处理一个相当复杂的querybuilder(在一个存储库函数中),它使用了很多东西,比如partial c.{id,name,created}和一堆fetchjoin来尝试减少数据量和查询量 然而,这还不够,但是前端表示仍然是分页的,所以我想在需要时进行一些ajax调用来获取数据 $qb = $this->createQueryBuilder('c') ->select('a whole bunch') ->join('many joins') ->se

我正在处理一个相当复杂的querybuilder(在一个存储库函数中),它使用了很多东西,比如
partial c.{id,name,created}
和一堆fetchjoin来尝试减少数据量和查询量

然而,这还不够,但是前端表示仍然是分页的,所以我想在需要时进行一些ajax调用来获取数据

$qb = $this->createQueryBuilder('c')
  ->select('a whole bunch')
  ->join('many joins')
  ->setFirstResult(0)
  ->setMaxResults(10)
在上面的方法中,我执行
setMaxResults(10)
并得到2个结果,
setMaxResults(1000)
得到118个结果。条令建议使用他们的类,因为它将正确处理计数/迭代

现在,如果我在
new Paginator($query,true)
提供的迭代器对象上循环,这一切都很好,但是调用存储库函数的代码希望从
getArrayResult
获得一个数组

迭代器包含完整的实体对象,这意味着我必须重写所有服务以使用方法而不是数组键


是否有方法将分页器与ArrayResult一起使用?

模式添加到查询中

//Set query hydration mode
$query->setHydrationMode(\Doctrine\ORM\Query::HYDRATE_ARRAY);