2013-08-05 34 views
5

我真的厭倦瞭解如何在數據庫中存在相關實體記錄的情況下如何檢查Doctrine 2。請幫幫我。Doctrine2檢查相關實體是否存在

例如,我有兩個實體。一個是某個交付公司的訂單狀態。另一個是訂單。

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; 

Order實體有時沒有狀態,我需要檢查它是否有。

據我所知,如果我將嘗試使用is_null($order->getDpdOrderStatus())它總是會false因爲學說始終以其實體創建Proxy對象如果未指定EAGER模式。

那麼,檢查我的狀態實體是否存在於數據庫中的最正確方法是什麼?

+0

你試過嗎? Doctrine的代理將加載缺失的數據。 – meze

+0

對不起,這是我的錯誤。當然,我的意思是錯誤的。 –

回答

0

這爲我工作。

public function hasOrderStatus() { 
    return !is_null($this->dpdOrderStatus) && (bool) $this->dpdOrderStatus->getId(); 
} 
相關問題