gpt4 book ai didi

zend-framework - 带有关联映射的 Doctrine 2 分页

转载 作者:行者123 更新时间:2023-12-04 04:26:31 24 4
gpt4 key购买 nike

我想知道如何对从 Doctrine 2 中的实体关联映射获得的结果进行分页? 例如

class Customer {
/**
* @OneToMany(targetEntity="Order")
*/
private $orders;
}

可以这样使用:
$customer->getOrders();

这将返回 Order 的集合对象。

问题是当有大量订单对象时。

我们可以使用 Doctrine\ORM\Tools\Pagination\Paginator在构建自定义查询时,但是在使用关联映射时,我没有看到任何方法可以连接到查询生成中。
class Paginator {
/**
* @param Query|QueryBuilder $query A Doctrine ORM query or query builder.
*/
function __construct(
//....

最佳答案

如果您使用 EXTRA_LAZY 获取模式,Doctrine 在对集合进行 hydrating 时将不会检索所有对象。当您在集合上使用 slice() 方法时,它只会检索所需的子集。

class Customer {
/**
* @OneToMany(targetEntity="Order", fetch="EXTRA_LAZY")
*/
private $orders;
}

$cust = new Customer;
$orders = $cust->getOrders()->slice(100, 50);

您需要验证这如何与分页交互。

关于zend-framework - 带有关联映射的 Doctrine 2 分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10043588/

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