respect-validation/docs/validators/Each.md
Henrique Moody 7c681fec66
Fix SPDX headers in all files
I ran the `bin/console spdx --fix` with different strategies for
different files. For most of the core classes, since they've been
drastically rebuilt, I've run it with the `git-blame` strategy, for for
the `src/Validators`, in which the API changed completely but the logic
remains the same, I use the `git-log` strategy.
2026-02-03 15:23:23 +01:00

3 KiB

Each

  • Each(Validator $validator)

Validates whether each value in the input is valid according to another validator.

$releaseDates = [
    'validation' => '2010-01-01',
    'template'   => '2011-01-01',
    'relational' => '2011-02-05',
];

v::each(v::dateTime())->assert($releaseDates);
// Validation passes successfully

This validator is similar to All, but while All displays a single message generic to all failed entries, Each will display a message for each failed entry instead.

v::each(v::startsWith('2010'))->assert($releaseDates);
// → - Each item in `["validation": "2010-01-01", "template": "2011-01-01", "relational": "2011-02-05"]` must be valid
// →   - `.template` must start with "2010"
// →   - `.relational` must start with "2010"

v::named('Release Dates', v::each(v::startsWith('2010')))->assert($releaseDates);
// → - Each item in Release Dates must be valid
// →   - `.template` must start with "2010"
// →   - `.relational` must start with "2010"

You can also validate array keys combining this validator with After:

v::after('array_keys', v::each(v::stringType()))->assert($releaseDates);
// Validation passes successfully

Note

This validator will pass if the input is empty. Use Length with [GreaterThan][GreaterThan.md] to perform a stricter check:

v::each(v::equals(10))->assert([]);
// Validation passes successfully

v::length(v::greaterThan(0))->each(v::equals(10))->assert([]);
// → The length of `[]` must be greater than 0

Templates

Each::TEMPLATE_STANDARD

Mode Template
default Each item in {{subject}} must be valid
inverted Each item in {{subject}} must be invalid

Template placeholders

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

Categorization

  • Arrays
  • Nesting
  • Transformations

Changelog

Version Description
3.0.0 Rejected stdClass, non-iterables
2.0.0 Remove support for key validation
0.3.9 Created

See Also