我修改了我的代码以遵循@stony Advices。
我想自定义我的电子邮件输入错误。我尝试遵循Symfony2教程,但它不起作用。
我遵循Symfony验证教程,然后创建YML文件,但是当我填写电子邮件fiel fiel fiel fiel fiel时,错误显示仍然是Symfony默认错误,而不是我的自定义消息...
/**
*
* @Route("/info")
*/
class InfoController extends BaseController
{
public function contactusAction(Request $request)
{
$constraint = new Collection(array('email' => new Email(array('message' => 'Adresse email invalide')),));
$contact = new ContactUs();
$form = $this->createFormBuilder($contact)
->add('nom', 'text')
->add('mail', 'email')
->add('sujet', 'choice', array('choices' => array('pt' => 'Problemes techniques', 'bi' => 'Boite a idees', 'd' => 'Divers')))
->add('msg', 'textarea')
->getForm();
}
}
这是我的观点
<form action="" method="post" {{ form_enctype(form) }} class="contactus">
{{ form_errors(form) }}
<div>
{{ form_label(form.nom, 'Nom : ') }}
{{ form_errors(form.nom) }}
{{ form_widget(form.nom) }}
</div>
<div>
{{ form_label(form.mail, 'Email : ') }}
{{ form_errors(form.mail) }}
{{ form_widget(form.mail) }}
</div>
<div>
{{ form_label(form.sujet, 'Sujet : ') }}
{{ form_errors(form.sujet) }}
{{ form_widget(form.sujet) }}
</div>
<div>
{{ form_label(form.msg, 'Message : ') }}
{{ form_errors(form.msg) }}
{{ form_widget(form.msg) }}
</div>
<input type="submit" value="Envoyer" />
{{ form_rest(form) }}
</form>
这是我的yml文件
PROJECTCoreBundleEntityContactUs:
properties:
mail:
- Email:
message: Adresse email invalide.
我认为错误消息很清楚:
$form = $this->createFormBuilder($contact, array('constraints' => $constraint))
没有第二个选项constraint
。我不知道您的目标是什么,但这不是正确的方法。
如果您想要一些验证,则应在教程中查看创建表单类。在那里,您可以看到如何定义表单和键入类别以及如何在字段上设置验证。
更多信息:验证
使用mail
字段上的constraints
选项,而不是表单本身。
symfony 2.0使用此。