Я работаю с доктриной 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 вместо этого?
Существует команда WIP для поддержки поддержки объектов ценности: https://github.com/doctrine/doctrine2/pull/634 –
@YohanG. Да, я видел это, хотя он немного отличается от того, что я ищу. Но поддержка VO в любом случае будет потрясающей! – Benjamin