2013-08-05 30 views
5

Sono davvero stanco di capire come posso verificare in Doctrine 2 se esiste un record di entità correlato nel DB. Aiutami per favore.Doctrine2 Verifica se esiste un'entità correlata

Ad esempio, ho due entità. Uno è lo stato dell'ordine di determinate società di consegna. Un altro è l'ordine.

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; 

entità Order a volte non ha lo status e ho bisogno di controllare se ha.

per quanto ne so se cercherò di usare is_null($order->getDpdOrderStatus()) sarà sempre false perché Doctrine creare sempre Proxy oggetti per le sue entità se la modalità EAGER non è specificato.

Quindi qual è il modo più corretto per verificare se la mia entità di stato esiste nel database?

+0

Hai provato? Il proxy di Doctrine caricherà i dati mancanti. – meze

+0

Scusa, questo è un mio errore. Voglio dire falso, naturalmente. –

risposta

0

questo ha funzionato per me.

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