1

我正在尝试使用一个sonata_type_collection字段来列出与食谱相关的成分。遇到两个问题:

  1. sortable 参数适用于拖放重新排序,但我无法让关联中的项目实际按该列排序。

  2. 删除复选框不适用于删除关联。

关联是 a ManyToOne,因为引用表的数据不仅仅是对 Recipe 表的简单引用,否则我会使用 a ManyToMany

sortable参数运行良好,使行可拖动,但成分列表未按该列排序。因此,尽管它position按应有的方式保存列,但实际上并没有按该顺序显示它们。

我试图找到一种简单的方法来连接PersistentCollection它以过滤它。我找到了有效的matching()函数,但它不会修改底层集合,它只是返回一个ArrayCollection. 这不起作用,因为我不能PersistentCollectionArrayCollection.

删除功能也不能开箱即用。我必须手动覆盖RecipeAdmin::preUpdate($object)并手动删除已删除的成分并刷新实体管理器。

我觉得应该有一个更简单的方法来完成这一切。

更新:我@OrderBy今天发现了解决排序问题的注释

4

1 回答 1

3

始终确保在 OneToMany 字段定义中设置 orphanRemoval=true ,否则删除复选框将不起作用。

于 2013-12-16T16:57:16.430 回答