Doctrine2检查相关实体是否存在

ale*_*etr 6 php symfony doctrine-orm

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

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

Order.php

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

DpdOrderStatus.php

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

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

AFAIK如果我将尝试使用is_null($order->getDpdOrderStatus())它将永远是false因为Proxy如果EAGER未指定mode,Doctrine总是为其实体创建对象.

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

ziz*_*jab 1

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

订单.php

public function hasOrderStatus(){
 return ! is_null($this->dpdOrderStatus);
}
Run Code Online (Sandbox Code Playgroud)

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