Php Symfony2中标准验证器的自定义验证消息

Php Symfony2中标准验证器的自定义验证消息,php,validation,symfony,Php,Validation,Symfony,我只想覆盖symfony2默认验证消息中的一条消息,即: 此值应为用户当前密码 此消息具有密钥security.validator.user\u password我试图通过创建BundleName/Resources/config/security.yml来覆盖此消息 BundleName/Resources/config/security.yml security: validator: user_password: custom message 我尝试了xml文件

我只想覆盖symfony2默认验证消息中的一条消息,即:

此值应为用户当前密码

此消息具有密钥
security.validator.user\u password
我试图通过创建
BundleName/Resources/config/security.yml来覆盖此消息

BundleName/Resources/config/security.yml

security:
    validator:
        user_password: custom message 
我尝试了xml文件并清除了缓存,但什么也没有得到


有什么建议吗

我认为您可以使用bundle配置中的validation.yml文件覆盖,就像symfony2文档中所说的那样

### src/UserBundle/Resources/config/validation.yml
Acme\UserBundle\Form\Model\ChangePassword:
properties:
   oldPassword:
       - Symfony\Component\Security\Core\Validator\Constraints\UserPassword:
           message: "Wrong value for your current password"

当使用FOSUserBundle作为我的用户捆绑包的父项时,我找到了一个解决方案:

# Acme\UsersBundle\config\validation.yml
Acme\UsersBundle\Entity\User:
    properties:
        password:
            - Symfony\Component\Security\Core\Validator\Constraints\UserPassword:
                message: Please check your current password and try again
此模式可用于覆盖在实体中给定字段的验证失败时显示的任何默认字符串

因此,为了澄清:

  • Acme\UsersBundle\Entity\User:对其执行验证的实体
  • 密码:要验证的实体属性的名称
  • Symfony\etc:实际执行验证的类
  • 消息:您要用什么覆盖
希望这有帮助