如何覆盖 symfony2 中的表单验证消息。虽然有一个validation.xml 文件相关的模型类。我认为它验证了基于 html5 的表单。
“请匹配要求的格式”,“请填写此字段”。有什么方法可以覆盖此验证消息。
请在这方面帮助我,我被困了一天多,因为我对 symfony 完全陌生
如何覆盖 symfony2 中的表单验证消息。虽然有一个validation.xml 文件相关的模型类。我认为它验证了基于 html5 的表单。
“请匹配要求的格式”,“请填写此字段”。有什么方法可以覆盖此验证消息。
请在这方面帮助我,我被困了一天多,因为我对 symfony 完全陌生
您看到的那些消息是由浏览器创建的 HTML5 验证消息。如果要覆盖它们,则需要将 oninvalid 属性添加到与该字段关联的输入标记。您可以通过两种方式做到这一点:
在您的控制器或表单类型中,将此属性添加到表单字段:
$builder->add('email', 'email',array(
'attr'=>array('oninvalid'=>"setCustomValidity('Would you please enter a valid email?')")
));
或者,在您的 twig 模板中,在呈现表单字段时添加此属性:
{{ form_row(form.email, { 'attr': {'oninvalid': "setCustomValidity('Please give me a nice email')"} }) }}
由于声明断言时的 message 选项,您可以更改每个验证器的消息:
/**
* @ORM\Column(type="string", length=255, unique=true)
* @Assert\NotBlank(
* message="You have to choose a username (this is my custom validation message).",
* groups={"registration", "account", "oauth"}
* )
您也可以通过创建文件 MyBundle/Resources/translations/validators.fr.xliff 来应用翻译