2013-08-05 3 views
5

Я действительно устал разобраться, как я могу проверить Doctrine 2, если в DB имеется связанная сущностная запись. Помоги мне, пожалуйста.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; 

заказа предприятие иногда не имеет статуса, и мне нужно проверить, если он имеет.

AFAIK, если я буду стараться использовать is_null($order->getDpdOrderStatus()) всегда будет false, потому что доктрина всегда создает Proxy объектов для его субъектов, если режим EAGER не указан.

Итак, что является самым правильным способом проверить, существует ли мой объект статуса в базе данных?

+0

Вы пробовали? Прокси-сервер Doctrine загрузит недостающие данные. – meze

+0

Извините, это моя ошибка. Конечно, я имею в виду ложь. –

ответ

0

Это работает для меня.

public function hasOrderStatus() { 
    return !is_null($this->dpdOrderStatus) && (bool) $this->dpdOrderStatus->getId(); 
} 
Смежные вопросы