在 Symfony 中使用 OR 逻辑针对多个约束进行验证

Validate against several constraints with OR logic in Symfony

我在请求中有一个字段可以是电子邮件或 phone。现在我需要根据两个约束对其进行验证 - 标准电子邮件约束和自定义 phone。我知道我可以传递一组约束 link this:

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

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

Create a custom validator 并使用现有约束实现您自己的逻辑。 据我所知,除此之外别无他法。

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