Доктрина 2.1: как установить «cascade: persist», используя yaml - PullRequest
7 голосов
/ 04 ноября 2011

Я получаю сообщение об ошибке при попытке сделать

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

потому что сначала мне нужно сохранить $ b, но я не могу этого сделать, поэтому мне нужно установить каскад: сохраняться, я верю. Я просто не могу найти в документации, как это сделать, используя схему yaml. Документация не распространяется на эту часть (я пробовал и в других местах в документации)

Приветствия

Ответы [ 3 ]

18 голосов
/ 16 декабря 2011

Это работает для меня

oneToMany:
    products:
      targetEntity: Name
      mappedBy: product
      cascade: ["persist"]
0 голосов
/ 28 августа 2016

Если вы пытались cascade: ["persist"] и все еще не работали, вот почему.

По состоянию на 2016-08-28 в настоящее время я использую последнюю версию доктрины.
Доктрина persist больше не работает, потому что она удалена .

Основная причина в том, что вам не следует изменять первичный ключ подключенной таблицы. А если ты это сделал, то почему?

Именно поэтому cascade persist удалено в YML Doctrine 2.

Ссылка: https://groups.google.com/forum/#!topic/doctrine-user/fdL7sgtjRM0

0 голосов
/ 10 декабря 2011

Если класс A имеет ассоциацию, скажем, один ко многим с B, и переменная ArrayCollection в A называется $ bcollection, то раздел YAML для cascade = {"persist"} будет выглядеть так:

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