У меня есть этот код
// ONE to many Bidir -- inverse side
/**
* @ORM\OneToMany(targetEntity="Item", mappedBy="Room", cascade={"persist"})
**/
protected $items;
Другая сторона
// ONE to many Bidir-- own side
/**
* @ORM\ManyToOne(targetEntity="Room", inversedBy="items")
* @ORM\JoinColumn(name="room_id", referencedColumnName="id")
**/
protected $room;
Моя проблема в том, что я перехожу на страницу элемента и выбираю «Комната», затем я вижу элементы, предварительно выбранные на странице «Комната»
. Но если я перехожу на страницу комнаты и пытаюсь выбрать несколько элементов, они не сохраняются
РЕДАКТИРОВАТЬ :Я видел, что это происходит только для отношения OneToMany. Для Manyto Many они работают нормально
РЕДАКТИРОВАТЬ2:
Я говорю о бэкэнд-области, где у меня есть форма и поле выбора, где я могу выбрать несколько элементов. Эта форма/код CRUD/контроллеры генерируются доктриной. Так что мне не нужно добавлять какие-либо дополнительные функции. В любом случае это код моего контроллера
$editForm = $this->createForm(new RoomType(), $entity);
$request = $this->getRequest();
$editForm->bindRequest($request);
if ($editForm->isValid()) {
$em->persist($entity);
$em->flush();
Когда я пытаюсь пройти через контроллер вот так
foreach($entity->getItems() as $item)
echo $item;
Тогда я смогу увидеть все твои предметы там. Таким образом, это означает, что все элементы находятся в основном объекте, но не сохраняются. я не знаю почему.
Если есть из-за проблемы с обратной стороной. Как я могу изменить отношение с обратного на следствие и обратное на владение