6

如果数据库中存在相关实体记录,我真的很厌倦弄清楚如何检查 Doctrine 2。请帮帮我。

例如,我有两个实体。一是某快递公司的订单状态。另一种是秩序。

订单.php

/**
 * @ORM\OneToOne(targetEntity="Application\DeliveryBundle\Entity\DpdOrderStatus", mappedBy="order")
 * @var DpdOrderStatus
 */
$dpdOrderStatus;

DpdOrderStatus.php

/**
 * @ORM\Id
 * @ORM\OneToOne(targetEntity="\Application\FrontendBundle\Entity\Order", inversedBy="dpdOrderStatus")
 * @ORM\JoinColumn(onDelete="CASCADE")
 * @var Order
 */
$order;

订单实体有时没有状态,我需要检查它是否有。

AFAIK 如果我会尝试使用is_null($order->getDpdOrderStatus())它将始终是因为如果未指定模式, falseDoctrine 总是Proxy为其实体创建对象。EAGER

那么检查我的状态实体是否存在于数据库中的最正确方法是什么?

4

2 回答 2

1

添加一个检查订单是否具有订单状态的方法:

订单.php

public function hasOrderStatus(){
 return ! is_null($this->dpdOrderStatus);
}

更多信息:检查 Doctrine2 中是否存在关系的技术

于 2013-08-05T07:37:06.173 回答
0

这对我有用。

public function hasOrderStatus() {
    return !is_null($this->dpdOrderStatus) && (bool) $this->dpdOrderStatus->getId();
}
于 2016-08-19T05:58:54.480 回答