与ManyToMany关系的Symfony4 CollectionType问题

上下文: 管理实体A和B之间的ManyToMany关系时,我遇到许多困难。 我得到了A实体的表单,其中一些输入字段用于A,还有一个CollectionType为B实体添加表单。 B表单仅获得一个字段:这是一个基于其name属性选择B1对象的选择输入。在A对象的“编辑”视图中的选择输入中显示5个(例如)包含B个对象的A表单,我没有任何麻烦。

我的问题:例如,在对象A1的“编辑”视图中,当我将某些B选择表单值从B1更改为B2或任何其他值时,然后提交A1表单进行编辑是很好,A1对象也很好。但是然后,当我将另一个B对象(特别是包含了B1对象)组合到另一个A对象(例如A2)时,我看到的是B2对象而不是B1。然后,在检查完数据库后,我意识到终于将B对象的name属性从B1更改为B2,现在有两个同名的B对象。

我已经尝试过的内容:

  • 使用B形式的ChoiceType或EntityType进行测试
  • 以A形式和/或B形式的'by_reference'=> false 进行测试
  • 以B形式结算'choice_label''choice_value'
  • 使用mappingBy / inversedBy初始化实体A和实体B上的所有对多关系
  • 设置'query_builder'和/或'choices'
  • ...
  • 当然可以很长时间地在互联网上搜索

我将不胜感激!谢谢

waruut 回答:与ManyToMany关系的Symfony4 CollectionType问题

我终于有了成功的方法:只需将collectionType中的EntityType直接放入A formType,而无需创建并使用A formType中包含的B formType ...

本文链接:https://www.f2er.com/3155981.html

大家都在问