#php #doctrine-orm
#php #doctrine-orm
Вопрос:
Я получаю сообщение об ошибке, когда пытаюсь выполнить
$b = new B();
$a->addB($b);
$entityManager->persist($a);
поскольку мне сначала нужно сохранить $ b, однако я не могу этого сделать, поэтому мне нужно установить cascade: persist, я полагаю. Я просто не могу найти в документации, как это сделать, используя схему yaml.
Документация не охватывает эту часть (я пробовал и в других местах документации)
Приветствия
Ответ №1:
Это работает для меня
oneToMany:
products:
targetEntity: Name
mappedBy: product
cascade: ["persist"]
Комментарии:
1. Ссылка на документацию Doctrine: doctrine-orm.readthedocs.org/en/2.0.x/reference /…
Ответ №2:
Если класс A имеет ассоциацию, скажем, один ко многим с B, а переменная ArrayCollection в A называется $bcollection, тогда раздел YAML для cascade={«persist»} будет выглядеть следующим образом:
oneToMany:
bcollection:
targetEntity: EntitiesB
cascade
- persist
mappedBy: contact
inversedBy: null
orphanRemoval: false
orderBy: null
Ответ №3:
Если вы пробовали cascade: ["persist"]
и все еще не работаете, вот почему.
По состоянию на 2016-08-28 я использую последнюю версию doctrine на данный момент.
Доктрина persist
больше не работает, потому что она удалена.
Основная причина в том, что вы не должны изменять первичный ключ подключенной таблицы. И если вы это сделали, то почему?
Именно по этой причине cascade persist
он удален в YML Doctrine 2.
Ссылка: https://groups.google.com/forum /#!тема/doctrine-user/fdL7sgtjRM0