Symfony Doctrin2 Paginator,getArrayResult
我正在处理一个相当复杂的querybuilder(在一个存储库函数中),它使用了很多东西,比如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
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);