【问题标题】:Add dynamic input boxes in a Symfony form在 Symfony 表单中添加动态输入框
【发布时间】:2016-02-18 09:19:29
【问题描述】:

我想做什么

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

我做了什么

我能够使用 HTML 和 JavaScript 创建此表单。除了可以无限制选择的 OTV 选项外,用户只能选择一种以上的凭据类型。 image here

我有什么问题

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

【问题讨论】:

  • 谢谢,我正在尝试,但我想先知道是否有任何方法可以从 HTML 表单传输数据,我可以将它们保存在 twig 中的随机对象中,然后将它们放入控制器?

标签: php html forms symfony


【解决方案1】:

CollectionType 可能是您正在寻找的。

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

您将拥有两种 FormType:一种用于列表,另一种用于列表项。在列表项 FormType 中,您应该能够设置一个 CallbackConstraint 来验证,例如电子邮件值在表单提交时有效。

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

【讨论】:

  • 感谢这是解决方案的一部分,但我如何动态生成输入框并遵守条件(每个选项为零或一个选择,OTV 为零或多个)
  • FormType 列表将创建一个 HTML 原型,当用户单击“添加”或类似内容时将出现该原型 - 食谱文章对此进行了描述。
  • 您可以在表单有效时检查您的控制器中是否有您需要的所有项目,如果缺少则使其无效
【解决方案2】:

我认为你可以做到。 Symfony 格式中有CollectionType。你可以阅读它here 以及如何实现它here

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

【讨论】:

  • 谢谢..这可能是解决方案的一部分
猜你喜欢
  • 1970-01-01
  • 2012-12-13
  • 2020-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-29
  • 2017-10-11
相关资源
最近更新 更多