mirror of
https://github.com/Respect/Validation.git
synced 2026-03-17 23:59:51 +01:00
Now empty values are again allowed in FilteredArray-style validators. To solve the issue with negation, a Result attribute was added to signal indeciseveness (when a result cannot be reliably inverted). On such cases, we consider that result to be valid. For example, `v::not(v::min(v::equals(10)))` says "The lowest value of the iterable input should not be equal 10". If the input is empty, we cannot decide whether its minimum is equal to 10 or not, so the validator essentially becomes a null-op. Users that want to ensure these validators have a valid decidable target must use it in combination with `Length` or other similar validators to achieve the same result.
1.9 KiB
1.9 KiB
All
All(Validator $validator)
Validates all items of the input against a given validator.
$releaseDates = [
'validation' => '2010-01-01',
'template' => '2011-01-01',
'relational' => '2011-02-05',
];
v::all(v::dateTime())->assert($releaseDates);
// Validation passes successfully
This validator is similar to Each, but while Each displays a message for each of the failed entries, All will display a single message generic to all
failed entries instead.
v::all(v::startsWith('2010'))->assert($releaseDates);
// → Every item in `["validation": "2010-01-01", "template": "2011-01-01", "relational": "2011-02-05"]` must start with "2010"
v::named('Release Dates', v::all(v::startsWith('2010')))->assert($releaseDates);
// → Every item in Release Dates must start with "2010"
Note
This validator will pass if the input is empty. Use Length with [GreaterThan][GreaterThan.md] to perform a stricter check:
v::all(v::equals(10))->assert([]);
// Validation passes successfully
v::length(v::greaterThan(0))->all(v::equals(10))->assert([]);
// → The length of `[]` must be greater than 0
Templates
All::TEMPLATE_STANDARD
| Mode | Template |
|---|---|
default |
Every item in |
inverted |
Every item in |
Template as prefix
The template serves as a prefix to the template of the inner validator.
v::all(v::floatType())->assert([1.5, 2]);
// → Every item in `[1.5, 2]` must be float
v::not(v::all(v::intType()))->assert([1, 2, -3]);
// → Every item in `[1, 2, -3]` must not be an integer
Categorization
- Comparisons
- Transformations
Changelog
| Version | Description |
|---|---|
| 3.0.0 | Created |