如果数据库中存在相关的实体记录,我真的厌倦了如何在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;
订单实体有时没有状态,我需要检查它是否有。
AFAIK如果我将尝试使用is_null($order->getDpdOrderStatus())
,它将始终是false
,因为如果没有指定EAGER
模式,条令总是为其实体创建Proxy
对象。
那么,检查数据库中是否存在我的状态实体最合适的方法是什么呢?
添加一个检查订单是否具有订单状态的方法:
Order.php
public function hasOrderStatus(){
return ! is_null($this->dpdOrderStatus);
}
更多信息:检查Doctrine2 中是否存在关系的技术
这对我有效。
public function hasOrderStatus() {
return !is_null($this->dpdOrderStatus) && (bool) $this->dpdOrderStatus->getId();
}