我想在我的项目中的几十个字段中使用自定义错误消息进行验证约束。
我不想在每一个上都设置消息,因为那将是对DRY的公然违反。在每个声明中重复相同的字符串,例如:@NotNull(message="custom msg")
将意味着如果我决定在将来更改消息,我将不得不将它们全部删除以替换它们,但更糟糕的是,我可能会在某些字符串上使用错误的字符串他们是不一致的。
你是如何处理的?
最好的选择是扩展每个symfony stock约束并在那里设置我的默认值,并使用我自己的自定义注释类吗?
请注意,使用翻译器对我来说不是一个选项,所以我正在寻找一个不包含symfony翻译组件的解决方案。
非常感谢您的帮助。
答案 0 :(得分:0)
假设您使用英语作为应用程序的语言,并且您已配置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
下的捆绑目录以及其他一些地方。