Validation 自定义Symfony2验证程序约束消息

Validation 自定义Symfony2验证程序约束消息,validation,symfony,Validation,Symfony,我想使用自定义错误消息对项目中的几十个字段进行验证约束 我不想在每一个问题上都强调这一点,因为这将是对DRY的公然违反。在每个声明中重复相同的字符串,如:@NotNull(message=“custom msg”)将意味着如果我决定将来更改消息,我将不得不查找它们并替换它们,但更糟糕的是,我可能会在其中一些消息上使用错误的字符串,并且不一致 你是怎么处理的 扩展每个symfony股票约束并在那里设置默认值,并使用自己的自定义注释类,这真的是最好的选择吗 请注意,使用转换器不是我的选择,因此我正在

我想使用自定义错误消息对项目中的几十个字段进行验证约束

我不想在每一个问题上都强调这一点,因为这将是对DRY的公然违反。在每个声明中重复相同的字符串,如:
@NotNull(message=“custom msg”)
将意味着如果我决定将来更改消息,我将不得不查找它们并替换它们,但更糟糕的是,我可能会在其中一些消息上使用错误的字符串,并且不一致

你是怎么处理的

扩展每个symfony股票约束并在那里设置默认值,并使用自己的自定义注释类,这真的是最好的选择吗

请注意,使用转换器不是我的选择,因此我正在寻找一个不包括symfony翻译组件的解决方案


非常感谢您提前提供的帮助。

假设您正在使用英语作为应用程序的语言,并且您已经配置了
translator:{fallback:en}
,您可以普遍覆盖这些约束消息。首先创建此文件:
app/Resources/translations/validators.en.yml

并使用以下翻译格式:

This value should not be blank.: Your custom message here
Whatever the standard message is.: Another custom message
这也适用于任何其他语言设置,假设您为它制作了一个
validators.lang.yml

您还可以将此文件放在捆绑包目录下的
Resources/translations
,以及其他一些地方


你可以

我可以这样做,但我想避免使用翻译(我有我自己的翻译为这个项目)。我没有启用转换器。我基本上是在寻找一个不需要在YAML文件中进行1-1翻译的解决方案。@ChrisTickner抱歉,这是您的“最佳选择”。正如我所提到的,这也是Symfony docs推荐的选项。否则,您必须扩展每个库存限制,但这不是很枯燥。谢谢您的帮助。这可能是除了扩展它们之外的唯一选择。在这篇文章之后,我改变了我原来的问题,以反映我本来应该补充的情况。再次感谢!