Symfony 2.1中未显示单个字段表单错误消息

时间:2013-01-24 01:46:30

标签: symfony-2.1

我在Symfony 2.1中有一个简单的表单,当我提交它时,我希望看到我的表单页面上显示一些错误消息,因为我根据需要指出了一些字段。

但是,显示该特定字段的错误消息的{{ form_errors(form.company_name) }}方法对我不起作用。它从不显示消息。但是,如果我使用{{form_errors(form)}},则所有错误消息都会显示在一个位置。我需要个人{{form_errors(form.company_name)}}方式来实现它。有没有人经历过这个?可能有什么不对?这是我的枝条代码:

<form method="post" {{ form_enctype(form) }} novalidate>
  <table>
  <tr>
    <td class="field-cell">{{ form_label(form.promo_referral) }}:&nbsp;</td>
    <td>{{ form_errors(form.promo_referral) }}{{ form_widget(form.promo_referral) }}</td>
  </tr>
  <tr>
    <td class="field-cell">{{ form_label(form.company_name) }}:&nbsp;</td>
    <td>{{ form_errors(form.company_name) }}{{ form_widget(form.company_name) }}</td>
  </tr>
  ...

这是我的相关控制器代码:

$registration = new ServiceVendorRegistration();
$form = $this->createForm(new ServiceRegisterForm(), $registration);

if ($request->isMethod("POST")) 
{
    $form->bind($request);
    if ($form->isValid())
    {
              // do something else
    }
}

return $this->render('MyBundle:Default:register_service_vendor.html.twig', array('form' => $form->createView()));

Validation.yml使该字段如下所示:

properties:
        companyName:
            - NotBlank:
                message: You have to fill this

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:7)

我得到了解决方案。当我使用下划线命名我的表单字段来分隔单词时,Symfony不喜欢它,例如first_name。它依赖于camelCase命名约定。当我相应地重命名我的表单字段时,它开始正常工作。

答案 1 :(得分:0)

检查您的ServiceRegisterForm以验证您的表单字段是否为“必需”或在实体定义中