我试图通过Symfony表单的按钮发布数据,但它不验证表单。
这是我的控制器文件:
public function PurchaseProductAction(Request $request)
{
$defaultData = array('message' => 'Type your message here');
$form = $this->createFormBuilder($defaultData)
->setMethod('POST')
->add('CompanyName', 'text', array(
'label'=>false
))
->add('Address1', 'text', array(
'label'=>false
))
->add('Continue_to_Step_2', 'submit')
->getForm();
$form->handleRequest($request);
if ($form->isValid())
{
// It does not come here
$data = $form->getData();
$value = $data['CompanyName'];
echo $value;
}
}
我的枝条文件:
{% block content %}
Company Name{{ form_row(form.CompanyName) }}
Address Line 1{{ form_row(form.Address1) }}
{{form_widget(form.Continue_to_Step_2)}}
{% endblock %}
请指导我,由于我的方法没有调用,我做错了什么?
答案 0 :(得分:4)
正如Rendering a Form in a Template part的the documentation中所述,您必须包含{{ form_start(form) }}
和{{ form_end(form) }}
树枝形式的帮助者。
这将根据您的表单定义生成相应的<form>
标记。
此外,请记住, Symfony 2.3 中添加了对提交按钮的支持。在此之前,您必须手动向表单的HTML添加按钮。
<强>更新强>
如果您不希望它显示未呈现的字段,则应将render_rest
选项设置为false
来调用
{# don't render unrendered fields #}
{{ form_end(form, {'render_rest': false}) }}