gpt4 book ai didi

doctrine-orm - 如何让 Doctrine 2 返回实体而不是代理

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

我正在尝试使用 Doctrine 2 实现深度复制功能,除了我的一个实体上的一种方法尝试在返回集合之前从关联中去除某些记录之外,我几乎拥有它。

问题是当我在下面调用 getRoofAreas() 时,我得到了一个 Proxy 对象数组,我的深拷贝代码不喜欢它:

/**
* @OneToMany(targetEntity="\Entities\QuotingRoofAreas", mappedBy="customerId", cascade={"persist"})
* @OrderBy({"areaIndex" = "ASC"})
*/

private $roofAreas;

public function getRoofAreas() {
$em = \Zend_Registry::get('em');
$q = $em->createQuery("select ra from \Entities\QuotingRoofAreas ra where ra.dateDeleted IS NULL and ra.customerId = " . $this->getId());
return $q->getResult();
}

但如果我将其更改为:
/**
* @OneToMany(targetEntity="\Entities\QuotingRoofAreas", mappedBy="customerId", cascade={"persist"})
* @OrderBy({"areaIndex" = "ASC"})
*/

private $roofAreas;

public function getRoofAreas() {
return $roofAreas;
}

然后它会返回一个持久的集合,当它迭代时,会得到我想要的实体对象。后一种方法不会删除已删除的屋顶区域,这对于我的用例来说是必须的。

有没有办法获取代理对象的实体对象?

预先感谢任何人可以提供的任何帮助

最佳答案

关于doctrine-orm - 如何让 Doctrine 2 返回实体而不是代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6168963/

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