Прежде всего, я хочу сказать, что прочитал все документы и разобрал это много, прежде чем публиковать этот вопрос. Я знаю, что означает эта ошибка (нерезидентный объект в отношениях)
Я получаю эту ошибку, когда думаю, что не должен ее получать.
У меня есть соотношение OneToMany Двунаправленное:
Class Channel
{
/**
* @ORM\OneToMany(targetEntity="Step", mappedBy="channel", cascade={"all"}, orphanRemoval=true)
* @ORM\OrderBy({"sequence" = "ASC"})
*/
protected $steps;
}
Class Step
{
/**
* @ORM\ManyToOne(targetEntity="Channel", inversedBy="steps")
*/
protected $channel;
}
Один Channel
может иметь много Step
, а сторона-владелец Channel
. После того, как я обновился с Doctrine 2.4 до 2,5, я получаю эту ошибку:
Doctrine\ORM\ORMInvalidArgumentException: найден новый объект через связь "Компания\MyBundle\Entity\Step # channel", которая не настроен на каскадное сохранение операций для объекта
почему он даже находит новые отношения с обратной стороны? Здесь мой код:
$channel = new Channel();
$step = new Step();
$channel->addStep($step);
$em->persist($channel);
$em->flush();
Спасибо!