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

时间:2013-09-11 15:52:18

标签: symfony symfony-forms

我在nameType.php中声明了一个表单,并且该视图呈现了所有字段,但我想手动添加另一个字段。

形式:

<form action="{{ path('create') }}" method="post" {{ form_enctype(form) }}>
    {{ form_widget(form) }}
    <input type="text" value="2">
   </form>

获取控制器中的值:

$form->bindRequest($request);

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

4 个答案:

答案 0 :(得分:54)

如果您正在尝试此操作,因为表单已链接到您的实体字段,您可以向FormType添加一个未映射的字段。然后,您的实体不需要getter和setter。

->add("inputName", "text", array("mapped"=>false, "data"=>2, "label"=>false))

要获取控制器中的数据:

$form->get("inputName")->getData();

答案 1 :(得分:4)

您无法从input检索$form值,因为它不属于它。

您必须使用request属性从Controller中的name检索它:

HTML:<input type="text" value="2" name"var_name">

控制器:$request->request->get('var_name')

答案 2 :(得分:3)

  

如何收集输入到控制器的值?

即时满足的方式是使用

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

表示未映射的字段。但我确信有更好的方法符合Symfony验证。

答案 3 :(得分:0)

致电$form->bindRequest($request)后,您可以致电:$form->getData()获取用户的意见。

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