6

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

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

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

4

2 回答 2

4

创建自定义验证器并使用现有约束实现您自己的逻辑。AFAIK 这不是获得你所要求的东西的其他方法。

于 2018-05-25T07:47:43.083 回答
4

有一个特殊的约束:https ://symfony.com/doc/current/reference/constraints/AtLeastOneOf.html

于 2020-12-08T10:58:58.183 回答