2013-08-05 30 views
5

関連するエンティティレコードがDBに存在するかどうかをDoctrine 2でどのようにチェックすることができるか分かりません。お願い助けて。Doctrine2関連するエンティティが存在するかどうか確認してください

たとえば、私は2つのエンティティを持っています。 1つは特定の配送会社の注文ステータスです。もう一つは注文です。

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エンティティは、時々の状態を持っていないと私はそれが持っているかどうかを確認する必要があります。私の知る限り

私はEAGERモードが指定されていない場合Doctrineは常にそのエンティティのProxyオブジェクトを作成するので、それは常にfalseなりますis_null($order->getDpdOrderStatus())使用しようとした場合。

ステータスエンティティがデータベースに存在するかどうかを確認する最も適切な方法は何ですか?

+0

これを試しましたか? Doctrineのプロキシは不足しているデータを読み込みます。 – meze

+0

申し訳ありませんが、それは私の間違いです。私はもちろん間違いを意味します。 –

答えて

0

これは私のために働きました。

public function hasOrderStatus() { 
    return !is_null($this->dpdOrderStatus) && (bool) $this->dpdOrderStatus->getId(); 
} 
関連する問題