【问题标题】:Symfony4 CollectionType issue with ManyToMany relation多对多关系的 Symfony 集合类型问题
【发布时间】:2020-03-02 08:53:12
【问题描述】:

背景: 我在管理实体 A 和 B 之间的多对多关系时遇到了很多困难。 我得到了一个 A 实体的表单,其中包含 A 的一些输入字段和一个 CollectionType 来为 B 实体添加表单。 B 表单只有一个字段:它是一个选择输入,用于根据其 name 属性选择 B1 对象。在 A 对象的编辑视图中的选择输入中显示包含 5 个(例如)包含 B 对象的 A 表单没有任何问题。

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

我已经尝试过的:

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

我将不胜感激任何帮助!谢谢

【问题讨论】:

    标签: forms symfony many-to-many entity choice


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      • 2012-05-13
      • 2019-07-25
      • 1970-01-01
      • 1970-01-01
      • 2011-01-05
      相关资源
      最近更新 更多