Symfony2 getData返回空字段

时间:2014-09-24 01:14:31

标签: forms symfony post

我已经设置了一个没有类的表单,但是当我提交它时,字段数据为空。

控制器:

public function indexAction(Request $request)
{
    $form = $this->createFormBuilder()
        ->add('barcode', 'text')
        ->getForm();
    $form->handleRequest($request);
    if ($form->isValid()) {
        $data = $form->get('barcode')->getData();
        var_dump( $data );
    }

    return compact('form');
}

查看:

<form action="{{ path('incompass_sterilization_scanning_index') }}" method="post" {{ form_enctype(form) }} class="form-inline scan">
    {{ form_errors(form) }}
    {{ form_row(form._token) }}
    {{ form_errors(form.barcode) }}
    <span class="glyphicon glyphicon-barcode" style="font-size:18px;"></span>
    <input type="text" id="barcode" class="form-control" placeholder="{% trans %}Scan Bar Code{% endtrans %}" name="barcode" required="required" autofocus="true" />
</form>

当我输入antying到条形码时,var_dump的结果总是NULL

我在这里做错了什么?

由于

1 个答案:

答案 0 :(得分:0)

可能是因为表单开始标记的name html属性。 而不是<form .... ></form>,请使用{{ form_start(form) }}{{ form_end(form) }} 或者在表单开头标记中添加name="form" name属性必须与symfony中表单的名称相同。如果您使用$this->createFormBuilder()创建表单,它将是&#34; form&#34;但是您可以使用表单工厂createNameBuilder设置您想要的任何名称。当您使用{{ form_start(form) }}呈现表单表单的开头标记时,symfony会自动为您处理它。还要保留请记住,当您在一个页面中有多个表单时,创建命名表单特别有用(必要)(更准确地说,当他们将action设置为同一控制器时)。