gpt4 book ai didi

symfony - Doctrine2 分页器,getArrayResult

转载 作者:行者123 更新时间:2023-12-04 16:25:36 25 4
gpt4 key购买 nike

我正在处理一个相当复杂的查询构建器(在存储库函数中),它使用了很多东西,比如 partial c.{id,name,created}和一堆 fetchjoins 试图保持数据量和查询量下降。

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

$qb = $this->createQueryBuilder('c')
->select('a whole bunch')
->join('many joins')
->setFirstResult(0)
->setMaxResults(10)

以上方法 doesn't work for complex joins , 我愿意 setMaxResults(10)并得到 2 个结果,以及 setMaxResults(1000)给我 118 个结果。 Doctrine 建议使用他们的 Pagination类,因为它将正确处理计数/迭代。

现在,如果我循环遍历 new Paginator($query, true) 提供的 Iterator 对象,一切正常。 ,但调用存储库函数的代码期望从 getArrayResult 获取一个数组.

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

有没有办法将分页器与 ArrayResult 一起使用?

最佳答案

添加 Hydration Mode到您的查询。

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

关于symfony - Doctrine2 分页器,getArrayResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35916222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com