我在 Symfony2 项目中使用 FOSUserBundle。我找不到任何合理的解释如何覆盖表单字段验证。我需要将密码字段验证设置为至少 7 个字符、至少一个小写字母、至少一个大写字母和至少一个数字。我发现的所有解决方案似乎都不起作用。有任何想法吗?
问问题
4698 次
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
您应该创建一个自定义约束类,如文档中所述
- 在 isValid 方法中添加您的正则表达式
- 添加您的自定义错误消息
- 使用validation.yml(或者如果您愿意,可以使用注释)将您的约束类添加到您的实体类中
应该适合您的需求
于 2013-02-21T15:37:38.590 回答