respect-validation/docs/rules/OneOf.md
Henrique Moody a0d6355980
Update some templates and improve tests
Some templates were a bit confusing, and I would like to favour adding
the `{{name}}` at the beginning of the templates as it helps when
reading nested messages.

I also deleted the regression tests for issue #1348, because it's a
non-issue, actually. The best approach to that problem is indeed using
`When` insteaf of `OneOf`.
2024-12-27 15:55:55 +01:00

1.7 KiB

OneOf

  • OneOf(Rule $rule1, Rule $rule2, Rule ...$rule)

Will validate if exactly one inner validator passes.

v::oneOf(v::digit(), v::alpha())->isValid('AB'); // true
v::oneOf(v::digit(), v::alpha())->isValid('12'); // true
v::oneOf(v::digit(), v::alpha())->isValid('AB12'); // false
v::oneOf(v::digit(), v::alpha())->isValid('*'); // false

The chains above validate if the input is either a digit or an alphabetic character, one or the other, but not neither nor both.

Templates

OneOf::TEMPLATE_NONE

Used when none of the rules have passed.

Mode Template
default {{name}} must pass one of the rules
inverted {{name}} must pass one of the rules

OneOf::TEMPLATE_MORE_THAN_ONE

Used when more than one rule has passed.

Mode Template
default {{name}} must pass only one of the rules
inverted {{name}} must pass only one of the rules

Template placeholders

Placeholder Description
name The validated input or the custom validator name (if specified).

Categorization

  • Composite
  • Nesting

Changelog

Version Description
3.0.0 Require at least two rules to be passed
0.3.9 Created

See also: