如果数据库中存在相关实体记录,我真的很想弄清楚如何检查Doctrine 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;
订单实体有时没有状态,我需要检查它是否有。
如果我尝试使用is_null($order->getDpdOrderStatus())
,AFAIK将始终为false
,因为如果未指定Proxy
模式,则Doctrine始终为其实体创建EAGER
个对象。
那么检查我的状态实体是否存在于数据库中的最恰当方法是什么?
答案 0 :(得分:1)
添加检查订单是否具有订单状态的方法:
<强> Order.php 强>
public function hasOrderStatus(){
return ! is_null($this->dpdOrderStatus);
}
更多信息:Techniques to check if relationship exists in Doctrine2
答案 1 :(得分:0)
这对我有用。
public function hasOrderStatus() {
return !is_null($this->dpdOrderStatus) && (bool) $this->dpdOrderStatus->getId();
}