我有Profile
个email
字段的实体,我试图使用Symfony Validator验证它。我尝试使用GroupSequence功能,因为从计算的角度来看,我的一个约束相当昂贵。
基本上,我想要有效电子邮件地址,域名不应列入黑名单(使用内部域名列表的自定义约束)。我希望仅在电子邮件有效时应用的最后一个约束,因此我使用组序列,但它没有按预期工作。
我正在使用Symfony 2.8.2并且我有以下 validation.yml 文件:
Namespace\Entities\Profile:
group_sequence:
- Profile
- common
- email.strict
properties:
email:
- Email: { groups: [common, email.strict] }
- Namespace\ProfileBundle\Validators\Constraints\EmailNotBlacklisted: { groups: [email.strict] }
验证是这样完成的:
$profile = new Profile();
$profile->setEmail('blacklisted.com');
$errors = $this->validator->validate($profile, array('common', 'email.strict'));
鉴于blacklisted.com
是无效值,我期望Email
约束失败,因此它永远不会达到EmailNotBlacklisted
约束。
但是,$errors
包含来自两个约束的错误。
在使用group_sequence
功能时我做错了什么?