如何在整个Symfony 2.1应用程序中全局覆盖NotBlank
约束消息This value should not be blank
?
我已经尝试过使用validators.en.yml
文件,但是只有当我将validation.yml
文件中的每个NotBlank约束都设置为类似于not.blank.field
的常量时,此方法才有效-但修改太多。
最佳答案
要替换在应用程序级别触发This value should not be blank
约束时显示的NotBlank
消息,只需在正确的位置创建正确的翻译文件。
为简单起见,您的语言环境似乎是英语(en),因此请创建文件app/Resources/translations/validators.en.yml
并在其中写入以下行:
# app/Resources/translations/validators.en.yml
This value should not be blank.: Y U NO SET THE VALUE?!
第一部分必须与您要翻译的消息完全匹配(在您的情况下为
This value should not be blank.
)。如果您具有自定义文件/文件夹层次结构,只需在
<kernel root directory>/Resources/translations
下创建文件。如果您希望其他语言(例如法语)具有相同的行为,只需在同一文件夹中创建相应的文件:
# app/Resources/translations/validators.fr.yml
This value should not be blank.: La valeur doit etre specifiee.
添加新文件后,别忘了清除缓存!
为什么行得通?因为Symfony2按位置优先翻译文件:http://symfony.com/doc/current/book/translation.html#translation-locations-and-naming-conventions
关于php - 全局覆盖symfony2.1上的NotBlank约束消息吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14984112/