Доктрина 2 не сохраняет связь между владеющей стороной один и Многими

У меня есть этот код

// 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;

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

Если есть из-за проблемы с обратной стороной. Как я могу изменить отношение с обратного на следствие и обратное на владение

10
задан Randhir Singh 20 August 2012 в 02:00
поделиться