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()