7

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

4

2 回答 2

16

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;

}
于 2013-05-31T16:40:52.210 回答
1

您应该创建一个自定义约束类,如文档中所述

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

应该适合您的需求

于 2013-02-21T15:37:38.590 回答