Symfony2表单:在每个元素附近添加删除图标

时间:2012-11-23 12:53:16

标签: php symfony doctrine-orm symfony-forms

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

你知道我怎么能这样做吗?

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

1 个答案:

答案 0 :(得分:1)

你必须嵌入collection of forms并使用大量的Javascript。它位于 Symfony2 Cookbook

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

表单插入是使用您需要添加的子表单的 Prototype 完成的,但似乎您不需要插入。

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


如果您只需要取消选择与主实体关系的实体列表,那么您可以使用entity field type,并且可以使用展开选项将其呈现为复选框列表。您的控制器将绑定实体和相关关系,因此Symfony将取消先前的关系。

相关问题