我正在使用原则2,并有一个Address
值对象:
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);
但是我想知道我是否错过了Doctrine中的一个允许我直接合并VO的功能?
据我所知,目前还没有这样做的文档方法