【问题标题】:How to override password validation in FOSUserBundle如何覆盖 FOSUserBundle 中的密码验证
【发布时间】:2013-02-06 23:21:16
【问题描述】:

我在 Symfony2 项目中使用 FOSUserBundle。我找不到任何合理的解释如何覆盖表单字段验证。我需要将密码字段验证设置为至少 7 个字符、至少一个小写字母、至少一个大写字母和至少一个数字。我发现的所有解决方案似乎都不起作用。有什么想法吗?

【问题讨论】:

    标签: validation symfony passwords fosuserbundle


    【解决方案1】:

    你应该创建一个自定义约束类,比如described in documentation

    1. 在 isValid 方法中添加正则表达式
    2. 添加您的自定义错误消息
    3. 使用validation.yml(或者如果您愿意,也可以使用注释)将您的约束类添加到您的实体类中

    应该满足你的需要

    【讨论】:

      【解决方案2】:

      使用标准的Regex 约束和以下模式/(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]).{7,}/

      class User extends FOSUser
      {
      
          /**
           * @Assert\Regex(
           *  pattern="/(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]).{7,}/",
           *  message="Password must be seven or more characters long and contain at least one digit, one upper- and one lowercase character."
           * )
           */
          protected $plainPassword;
      
      }
      

      【讨论】:

      • 这会增加一个新的约束吗?还是删除并添加?
      猜你喜欢
      • 2019-03-13
      • 2018-01-28
      • 2013-09-15
      • 1970-01-01
      • 2013-05-19
      • 2012-08-03
      • 2016-10-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多