Проблема Symfony4 CollectionType с отношением ManyToMany

Контекст: Мне сложно управлять отношением ManyToMany между объектами A и B. У меня есть форма для объекта A с некоторыми полями ввода для A и CollectionType для добавления формы для объекта B. Форма B имеет только одно поле: это поле ввода для выбора объекта B1 на основе его свойства name. У меня нет проблем с отображением формы A с 5 (например) включенными объектами B в поле ввода выбора в представлении редактирования объекта A.

Моя проблема: например, в режиме редактирования объекта A1, когда я меняю некоторые значения форм выбора B с B1 на B2 или любое другое значение, затем отправляю форму A1 для редактирования, и Объект А1 тоже кажется неплохим. Но затем, когда я перехожу к другому объекту A (например, A2) с другими объединившимися объектами B (в частности, к объекту B1), я вижу объект B2 вместо объекта B1. А затем, проверив базу данных, я понял, что наконец изменил свойство name объекта B с B1 на B2, и теперь есть два объекта B с тем же именем.

Что я уже пробовал:

  • для тестирования с ChoiceType или EntityType в форме B
  • для тестирования с 'by_reference' => false в форме A и / или форме B
  • установить 'selection_label' или 'choice_value' в форме B
  • для инициализации отношения ManyToMany с помощью mappingBy / reverseBy как для объектов A, так и для B
  • для установки 'query_builder' и / или 'choices'
  • ...
  • и, конечно же, долго искать в интернете.

Я буду признателен за любую помощь! Спасибо


person revoetan    schedule 05.11.2019    source источник


Ответы (1)


У меня наконец-то появился способ добиться успеха: просто необходимо было поместить EntityType из collectionType непосредственно в A formType, без создания и использования B formType, включенного в A formType ...

person revoetan    schedule 05.11.2019