2011-12-30 3 views
4

Я работаю с доктриной 2, и есть объект Address значение:Doctrine 2: реплантации сущности через значения объектов

class Address 
{ 
    /** @var string */ 
    protected $street; 

    /** @var string */ 
    protected $city; 

    /** @var Application\Domain\Model\Country */ 
    protected $country; 
} 

Мне нужно хранить этот Address в PHP сессии (сериализованном), и получить его позже. Когда я получаю этот объект значения, я хочу, чтобы объект Country был объединен с текущим Менеджером сущностей, чтобы эта страна находилась в синхронизации с текущей единицей работы.

Возможно ли «объединить» этот объект значения с текущим Менеджером сущностей, как я бы сделал на обычном объекте с cascade="merge", чтобы заменить экземпляр Country на текущий?

я могу явно вручную создать другой Address с ручным слиты Country:

$address = $_SESSION['address']; 
$country = $em->merge($address->getCountry()); 
$address = new Address($address->getStreet(), $address->getCity(), $country); 

Но мне интересно, если я пропускаю особенность в доктрине, которая позволила бы мне непосредственно объединить VO вместо этого?

ответ

1

Насколько я знаю, в настоящее время нет документального способа сделать это.

+0

Существует команда WIP для поддержки поддержки объектов ценности: https://github.com/doctrine/doctrine2/pull/634 –

+0

@YohanG. Да, я видел это, хотя он немного отличается от того, что я ищу. Но поддержка VO в любом случае будет потрясающей! – Benjamin

Смежные вопросы