Symfony表单按钮不发布数据

时间:2013-11-22 15:27:57

标签: php symfony

我试图通过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 %}

请指导我,由于我的方法没有调用,我做错了什么?

1 个答案:

答案 0 :(得分:4)

正如Rendering a Form in a Template partthe documentation中所述,您必须包含{{ form_start(form) }}{{ form_end(form) }}树枝形式的帮助者。

这将根据您的表单定义生成相应的<form>标记。

此外,请记住 Symfony 2.3 中添加了对提交按钮的支持。在此之前,您必须手动向表单的HTML添加按钮。

<强>更新

如果您不希望它显示未呈现的字段,则应将render_rest选项设置为false来调用

form_end

{# don't render unrendered fields #}
{{ form_end(form, {'render_rest': false}) }}