【问题标题】:Validate against several constraints with OR logic in Symfony在 Symfony 中使用 OR 逻辑验证多个约束
【发布时间】:2018-05-25 07:41:32
【问题描述】:

我在请求中有一个字段,可以是电子邮件或电话。现在我需要根据两个约束来验证它——标准电子邮件约束和自定义电话。我知道我可以传递一系列约束链接:

$constraint = new Constraints\Collection([
            'name' => new Constraints\NotBlank(),
            'uid' => [new Constraints\Email(), new Constraints\Phone()],
            'pass' => new Constraints\NotBlank()
        ]);

但是 Validator 将 AND 逻辑应用于约束数组,我需要 OR 以便如果值适合其中之一,则验证成功。这可以通过任何标准的 Symfony 方式实现吗?

【问题讨论】:

    标签: php symfony symfony4 symfony-validator


    【解决方案1】:

    Create a custom validator 并使用现有约束实现您自己的逻辑。 AFAIK 没有其他方法可以得到你想要的东西。

    【讨论】:

    • 好吧,我就是这么想的。我问的原因是这种情况对我来说很常见,并且可能已在组件中实现。
    • @Sergey 你应该把它推荐给 symfony 核心团队:D
    【解决方案2】:

    【讨论】:

    • 请注意这是在 Symfony 5.1 中添加的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-13
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多