首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有来自继承类的验证器的GroupSequence似乎无法正常工作

带有来自继承类的验证器的GroupSequence似乎无法正常工作
EN

Stack Overflow用户
提问于 2018-10-06 00:37:20
回答 1查看 51关注 0票数 1

目前我有点卡住了:

我想为我的user对象创建一个特殊的验证,该验证仅在所有其他验证成功时才执行。这可以用@GroupSequence和验证器在包含我的“特殊”验证器的最后一个组之前的组中解决:

代码语言:javascript
复制
use FOS\UserBundle\Model\User as BaseUser;

    ...

/*
 * @Assert\GroupSequence({"User", "Strict"})
 * @UniqueEntity("email", message="xx", groups={"User"})
 * @MyAssert\UserValidConstraint(groups={"Strict"})
*/

class User extends BaseUser {

    ....

}

这样,当电子邮件不唯一时,我的UserValidConstraint就不会执行--这是预期的,这也是我想要得到的行为。

同时执行来自基类的约束。如果密码太短,我会从基类得到错误消息,等等。也可以正常工作。

但我的问题是,当基类的这些验证失败时,我的特殊约束也总是被执行。

GroupSequence-Rule似乎无法识别这些验证。

有什么暗示我可能做错了什么吗?或者这是Symfony的一个bug?

使用

来自git/dev-master的Symfony 4.1.4 FOS Userbundle

EN

回答 1

Stack Overflow用户

发布于 2018-10-26 03:04:49

这种行为有点奇怪:

为了评估这个问题,我编写了一些单元测试来了解验证器的行为。

在那里,我可以验证GroupSequence是否能正确处理继承的类。

有问题的约束是来自FOS-Userbundle的约束。这里的约束是用YAML定义的,而我的约束是用注释定义的。也许是有问题呢?

作为一种解决办法,我在user类中为电子邮件地址添加了另一个UniqueConstraint,并给出了一个空的错误消息。因此,用户不会对额外的错误感到太困惑。;-)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52669967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档