在Symfony表单中添加动态输入框


Add dynamic input boxes in a Symfony form

我想做什么

我正在尝试在Symfony 2.8中构建一个表单,该表单请求用户在多种类型的凭据之间进行选择,并向表单添加一个输入框,它与此类似,但我使用选择选项字段而不是按钮。

我做了什么

我能够使用 HTML 和 JavaScript 创建此表单。用户只能选择一次以上的凭据类型,但可以无限制地选择的 OTV 选项除外。图片在这里

我的问题是什么

我需要一种方法将用户数据存储在会话中并将它们获取到我的控制器中。是否可以将提交的数据从HTML表单传递到Symfony控制器,如果不能,我如何使用Symfony的formBuilder构建类似的表单?

CollectionType 可能是您要查找的。

出于您的目的,您可以将其视为在两列列表的末尾添加行。左列在<select>中credential_type姓名,电子邮件等;右列允许显示文本值。

您将有两个窗体类型:一个用于列表,另一个用于列表项。在列表项 FormType 中,您应该能够设置 CallbackConstraint 来验证电子邮件值在表单提交时是否有效。

仅当表单有效时,才会同时保存所有用户更改。

我认为你可以这样做。有Symfony形式的CollectionType。您可以在此处阅读有关它以及如何在此处实现它的信息

附言在这种情况下,主要问题是为动态创建的字段生成特定名称,以在控制器中提供正常的处理数据。