2

我在 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

任何帮助将不胜感激。

4

2 回答 2

7

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

于 2013-02-03T04:37:33.217 回答
0

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

于 2013-01-25T07:15:08.780 回答