2011-11-04 92 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