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

Upv*_*ote 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);

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

    return $this->render('MainBundle:Default:contact.html.twig', array(
                'form' => $form->createView()
    ));
Run Code Online (Sandbox Code Playgroud)

我的验证员

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

        lastName:
            - NotBlank: ~

        email:
            - NotBlank: ~
            - Email:
                checkMX: true
        title:
            - NotBlank: ~
        message:
            - NotBlank: ~
Run Code Online (Sandbox Code Playgroud)

我在表单标记中添加了一个novalidate属性来检查我的验证是否有效.现在,当我提交带有空数据的表单时,没有任何事情发生(正确的数据一切正常),控制器将表单识别为无效并停止进一步的处理.

在我打电话的模板中

 {{ form_errors(form) }}
Run Code Online (Sandbox Code Playgroud)

但没有显示任何内容.有什么想法吗?我使用symfony 2.1.X

Fra*_*ant 5

你能否确认验证是否适用于此:

if ($form->isValid()) {
//Do something
}
else
{ die('not valid') }
Run Code Online (Sandbox Code Playgroud)

表格是否贴好发布?

HTML中是否有任何内容显示您调用{{form_errors(form)}}的位置? - 如果是这样的话,那将是一个CSS或JS问题......

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

{{ form_errors(form.firstName) }}
etc.
Run Code Online (Sandbox Code Playgroud)

备注:form.firstName有效,而不是form.first_name.你必须遵循Doctrine2/Symfony2的约定.

  • 我找到了问题的答案.Symfony2不喜欢字段名称中的"_"下划线.我必须遵循camel约定并将其更改为firstName.现在它适用于各个领域. (2认同)