2011-11-04 93 views
6

我得到一個錯誤,當我嘗試做學說2.1:如何設置「級聯:堅持」用YAML

$b = new B(); 
$a->addB($b); 
$entityManager->persist($a); 

,因爲我首先要堅持$ B,但是我不能做到這一點,所以我需要設置級聯:堅持我相信。我只是無法在文檔中找到如何使用yaml模式來做到這一點。 Documentation不包括這部分(我在文檔其他地方嘗試爲好)

乾杯

回答

16

這對我的作品

oneToMany: 
    products: 
     targetEntity: Name 
     mappedBy: product 
     cascade: ["persist"] 
+0

鏈接到學說文檔: http://doctrine-orm.readthedocs.org/en/2.0。 X /參考/工作與 - associations.html#傳遞的持久性級聯的操作 – naitsirch

0

如果類A有關聯,比如說,一個一對多到B,A中的ArrayCollection變量被稱爲$ bcollection,則級聯YAML節= { 「堅持」}應該是這樣的:

oneToMany: 
    bcollection: 
     targetEntity: Entities\B 
     cascade 
     - persist 
     mappedBy: contact 
     inversedBy: null 
     orphanRemoval: false 
     orderBy: null 
0

如果您嘗試cascade: ["persist"]但仍然不能正常工作。

截至2016年8月28日,我在此時使用最新版本的教條。
原則persist不再工作,因爲它是刪除

主要原因是您不應該更改連接表的主鍵。如果你做到了,那爲什麼?

這是cascade persist在YML教義被去除的原因2.

參考:https://groups.google.com/forum/#!topic/doctrine-user/fdL7sgtjRM0