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

时间:2013-10-08 10:34:06

标签: php validation symfony

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

  

此值应为用户当前密码。

此邮件的密钥为security.validator.user_password我尝试通过创建BundleName/Resources/config/security.yml来覆盖此邮件。

BUNDLENAME /资源/配置/ security.yml

security:
    validator:
        user_password: custom message 

我尝试了xml文件并清除了缓存,但我什么都没得到。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

我认为您可以使用bundle配置中的validation.yml文件覆盖,如symfony2 doc上所述。

### 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"

答案 1 :(得分:0)

当我使用FOSUserBundle作为我的Users套装的父级时,我找到了解决方法:

# 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:实际进行验证的类
  • 消息:您要用
  • 覆盖的内容

希望这有帮助!