0 follower

Final Class Yiisoft\Validator\Rule\AnyRuleHandler

InheritanceYiisoft\Validator\Rule\AnyRuleHandler
ImplementsYiisoft\Validator\RuleHandlerInterface

A handler for {@see AnyRule} rule. Validates a set of rules consecutively and stops at the rule where validation has passed.

Public Methods

Hide inherited methods

Method Description Defined By
validate() Yiisoft\Validator\Rule\AnyRuleHandler

Method Details

Hide inherited methods

validate() public method

public Yiisoft\Validator\Result validate ( mixed $value, Yiisoft\Validator\RuleInterface $rule, Yiisoft\Validator\ValidationContext $context )
$value mixed
$rule Yiisoft\Validator\RuleInterface
$context Yiisoft\Validator\ValidationContext

                public function validate(mixed $value, RuleInterface $rule, ValidationContext $context): Result
{
    if (!$rule instanceof AnyRule) {
        throw new UnexpectedRuleException(AnyRule::class, $rule);
    }
    foreach ($rule->getRules() as $relatedRule) {
        $result = $context->validate($value, $relatedRule);
        if ($result->isValid()) {
            return $result;
        }
    }
    return (new Result())->addError($rule->getMessage(), []);
}