我真的很累,要弄清楚如何在DB 2中检查相关实体记录是否可以在教义2中进行检查。请帮帮我。

例如,我有两个实体。一是某些送货公司的订单状态。另一个是订单。

Order.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()),它将始终是false,因为如果未指定Proxy模式,Doctrine始终会为其实体创建EAGER对象。

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

最佳答案

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

Order.php

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

更多信息:Techniques to check if relationship exists in Doctrine2

09-25 20:51