Doctrine 2.1:如何使用yaml设置“cascade:persist”

时间:2011-11-04 12:03:40

标签: php doctrine-orm

当我尝试

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

因为我首先需要坚持$ b,但是我不能这样做,所以我需要设置级联:坚持我相信。我在文档中找不到如何使用yaml模式执行此操作。 Documentation不包括这部分内容(我也在文档的其他地方尝试过)

干杯

3 个答案:

答案 0 :(得分:18)

这对我有用

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

答案 1 :(得分:0)

如果A类有一个关联,比如一对多到B,而A中的ArrayCollection变量叫做$ bcollection,那么cascade = {“persist”}的YAML部分看起来像这样:

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

答案 2 :(得分:0)

如果您尝试了cascade: ["persist"]但仍然没有在这里工作,那就是原因。

截至2016-08-28,我目前正在使用最新版本的学说 学说persist不再有效,因为已删除

主要原因是您不应该更改已连接表的主键。如果你这样做了,为什么呢?

这就是在YML Doctrine 2中删除cascade persist的原因。

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