2011-12-30 61 views
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呢?

回答

1

據我所知,目前沒有文件記錄的方式來做到這一點。

+0

原則小組爲實施價值對象支持提供WIP:https://github.com/doctrine/doctrine2/pull/634 – 2013-06-09 16:48:25

+0

@YohanG。是的,我已經看到了,雖然它與我所尋找的略有不同。無論如何,本地VO支持將會非常棒! – Benjamin 2013-06-09 17:57:03