我在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) }}: </td>
<td>{{ form_errors(form.promo_referral) }}{{ form_widget(form.promo_referral) }}</td>
</tr>
<tr>
<td class="field-cell">{{ form_label(form.company_name) }}: </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
非常感谢任何帮助。
答案 0 :(得分:7)
我得到了解决方案。当我使用下划线命名我的表单字段来分隔单词时,Symfony不喜欢它,例如first_name。它依赖于camelCase命名约定。当我相应地重命名我的表单字段时,它开始正常工作。
答案 1 :(得分:0)
检查您的ServiceRegisterForm以验证您的表单字段是否为“必需”或在实体定义中