Symfony 获取未在FormType中声明的字段的值

Symfony 获取未在FormType中声明的字段的值,symfony,symfony-forms,Symfony,Symfony Forms,我在nameType.php中声明了一个表单,并且查看了render all字段,但是我想手动添加另一个字段 表格: 如何在控制器中收集输入值?您无法从$form中检索输入值,因为它不是它的一部分 您必须使用名称属性从控制器中的请求中检索它: HTML: 控制器:$request->request->get('var_name')调用$form->bindRequest($request)后,您可以调用:$form->getData()从用户获取输入 但是,如果您希望接收未映射字段的输入数据,则

我在
nameType.php
中声明了一个表单,并且查看了render all字段,但是我想手动添加另一个字段

表格:


如何在控制器中收集输入值?

您无法从
$form
中检索
输入值,因为它不是它的一部分

您必须使用
名称
属性从
控制器中的
请求
中检索它:

HTML:


控制器:
$request->request->get('var_name')
调用
$form->bindRequest($request)
后,您可以调用:
$form->getData()
从用户获取输入


但是,如果您希望接收未映射字段的输入数据,则需要使用前面提到的
$request->request->get('field_name')

如果您尝试此操作,因为表单链接到您的实体字段,您可以将未映射字段添加到FormType。那么您的实体就不需要getter和setter了

->add("inputName", "text", array("mapped"=>false, "data"=>2, "label"=>false))
要获取控制器中的数据,请执行以下操作:

$form->bindRequest($request);
$form->get("inputName")->getData();
如何收集控制器的输入值

即时满足的方式是使用

$form->get('inputName')->getViewData()

对于未映射的字段。但我相信有更好的方法符合Symfony验证。

在动态表单的情况下,它看起来是我唯一的解决方案。谢谢你救了我一天,阿尔伯特,这是正确的方法。提问者应将此复选为正确答案。如果输入为多选怎么办?您应获得一个包含所选值的数组
$form->get('inputName')->getViewData()