我已经设置了一个没有类的表单,但是当我提交它时,字段数据为空。
控制器:
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
我在这里做错了什么?
由于
答案 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
设置为同一控制器时)。