3

我想在我的表单中显示来自实体的元素列表。在每个元素附近,它应该是一个删除按钮,它将从实体中删除特定元素。

你知道我怎么能做到这一点吗?

示例:3 个实体:Person、Affiliation 和 PersonAffiliations。一个人有 0 个或多个从属关系。假设我为该人创建了 10 个从属关系,现在我想删除其中一个。如何创建表单以显示特定人员的所有从属关系列表,并在每个从属关系附近显示一个小的删除图标。单击此图标时,应删除此人的从属关系。

4

1 回答 1

1

您必须嵌入一组表单并使用大量 Javascript。它在Symfony2 Cookbook中!

按照上面链接中提供的标签的示例进行操作!这很简单,您必须为每个要删除的子表单放置一个带有“ remove ”或“ x ”字符串的锚点,并使用 Javascript 处理删除。

表单插入是通过使用您需要添加的子表单的原型来完成的,但似乎您不需要插入。

请注意,在您的示例中,您必须创建一个空Person对象并向其添加预定义Affiliation对象的列表,FormBuilder以便能够呈现与Affiliation. 然后您可以使用 Javascript 删除子表单。当然,通常最好定义专用的表单类型。


如果您只需要取消选择与主实体相关的实体列表,则可以使用实体字段类型,并且可以使用扩展选项将其呈现为复选框列表。您的控制器将绑定实体和相关关系,因此 Symfony 将取消之前的关系。

于 2012-11-23T13:05:21.013 回答