Doctrine2 ManyToMany-отношения не сохраняют

У меня проблема с моим отношением ManyToMany в doctrine2. Соотношение не сохраняется, даже если отношение существует. Если я проверю, сохраняются ли в двух циклах foreach правильные объекты.

Первый класс – это документ.

class Document extends BaseEntity { .... /** * @ORM\ManyToMany(targetEntity="Job", mappedBy="documents", cascade={"all"}) * @ORM\JoinTable(name="job_document") */ protected $jobs; .... 

Второй класс – Job

 class Job extends BaseEntity { .... /** * @ORM\ManyToMany(targetEntity="Document", inversedBy="jobs", cascade={"all"}) * @ORM\JoinTable(name="job_document") */ protected $documents; .... 

В моем контроллере я делаю следующее:

 $job->addDocument($document); $document->addJob($job); $em->persist($job); $em->flush(); 

Функции добавления работают нормально. Я могу видеть это, когда я прохожу через объекты, и я это делаю.

Мне кажется, что вы только пытаетесь обновить обратную сторону, а не собственную сторону отношений.

Как указано в документации доктрины :

Изменения, внесенные только в обратную сторону ассоциации, игнорируются. Не забудьте обновить обе стороны двунаправленной ассоциации (или, по крайней мере, стороны-владельца, с точки зрения Доктрины)