4
我与学说2个工作,并有Address
值对象:原则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 – 2013-06-09 16:48:25
@YohanG。是的,我已经看到了,虽然它与我所寻找的略有不同。无论如何,本地VO支持将会非常棒! – Benjamin 2013-06-09 17:57:03