Symfony 表单在模板中不显示表单错误

Symfony 表单在模板中不显示表单错误,symfony,symfony-2.1,Symfony,Symfony 2.1,对于我的联系人表单,不显示任何表单错误 $contact = new Contact(); $form = $this->createForm(new ContactFormType(), $contact); /* handle contact form submission */ if ('POST' == $request->getMethod()) { $form->bindRequest($request);

对于我的联系人表单,不显示任何表单错误

    $contact = new Contact();

    $form = $this->createForm(new ContactFormType(), $contact);

    /* handle contact form submission */
    if ('POST' == $request->getMethod()) {
        $form->bindRequest($request);

        if ($form->isValid()) {
            //Do something
        }
    }

    return $this->render('MainBundle:Default:contact.html.twig', array(
                'form' => $form->createView()
    ));
我的验证器

Fc\MainBundle\Entity\Contact:
    properties:
        firstName:
            - NotBlank: ~

        lastName:
            - NotBlank: ~

        email:
            - NotBlank: ~
            - Email:
                checkMX: true
        title:
            - NotBlank: ~
        message:
            - NotBlank: ~
我在表单标签中添加了一个novalidate属性,以检查我的验证是否有效。现在,当我提交带有空数据的表单时,什么也不会发生(如果数据正确,一切都正常),控制器会将表单标识为无效,并停止进一步的处理

在模板中,我调用

 {{ form_errors(form) }}

但是什么也没有显示。你知道为什么吗?我使用symfony 2.1.X

您能否确认验证正在使用以下内容:

if ($form->isValid()) {
//Do something
}
else
{ die('not valid') }
表格贴得好吗

HTML中是否有任何东西显示在您调用{{form_errors(form)}}的地方这将是一个CSS或JS的问题,如果是这样的话

您是否尝试按字段显示错误(验证中没有全局错误):


备注:形式.名字有效,而不是形式.名字。您必须遵循Doctrine2/Symfony2的约定。

您能否确认验证正在使用以下内容:

if ($form->isValid()) {
//Do something
}
else
{ die('not valid') }
表格贴得好吗

HTML中是否有任何东西显示在您调用{{form_errors(form)}}的地方这将是一个CSS或JS的问题,如果是这样的话

您是否尝试按字段显示错误(验证中没有全局错误):


备注:形式.名字有效,而不是形式.名字。您必须遵循Doctrine2/Symfony2的约定。

+1您的最后一点……它显示firstName字段或任何单个字段的错误消息。但是表单错误(form)不起作用。我需要form_errors(form)来工作。我当时记不起语法,但基本上,你只需要循环所有的表单错误。。。看看API。可能类似于$errors=$form->getErrors()并在模板中使用它(对于errors中的error…error.message)$form->getErrors()在API中返回空数组:。。。FormView实现了IteratorAggregate,这意味着您可以对表单%}中的原始数据执行{%。表单错误(表单)显示全局错误。表格错误(raw)应该可以。我找到了问题的答案。Symfony2不喜欢字段名中的“u2;”下划线。我不得不遵循骆驼的惯例,把它改成名字。现在它适用于单个字段。+1您的最后一点…它显示firstName字段或任何单个字段的错误消息。但是表单错误(form)不起作用。我需要form_errors(form)来工作。我当时记不起语法,但基本上,你只需要循环所有的表单错误。。。看看API。可能类似于$errors=$form->getErrors()并在模板中使用它(对于errors中的error…error.message)$form->getErrors()在API中返回空数组:。。。FormView实现了IteratorAggregate,这意味着您可以对表单%}中的原始数据执行{%。表单错误(表单)显示全局错误。表格错误(raw)应该可以。我找到了问题的答案。Symfony2不喜欢字段名中的“u2;”下划线。我不得不遵循骆驼的惯例,把它改成名字。现在它适用于单个字段。