2015-01-30 09:40:06 +01:00
|
|
|
# When
|
|
|
|
|
2017-03-27 14:47:07 +02:00
|
|
|
- `When(Validatable $if, Validatable $then)`
|
2017-03-27 22:04:13 +02:00
|
|
|
- `When(Validatable $if, Validatable $then, Validatable $else)`
|
2015-01-30 09:40:06 +01:00
|
|
|
|
|
|
|
A ternary validator that accepts three parameters.
|
|
|
|
|
|
|
|
When the `$if` validates, returns validation for `$then`.
|
|
|
|
When the `$if` doesn't validate, returns validation for `$else`, if defined.
|
|
|
|
|
|
|
|
```php
|
2018-06-07 11:24:09 +02:00
|
|
|
v::when(v::intVal(), v::positive(), v::notEmpty())->validate(1); // true
|
|
|
|
v::when(v::intVal(), v::positive(), v::notEmpty())->validate('not empty'); // true
|
|
|
|
|
|
|
|
v::when(v::intVal(), v::positive(), v::notEmpty())->validate(-1); // false
|
|
|
|
v::when(v::intVal(), v::positive(), v::notEmpty())->validate(''); // false
|
2015-01-30 09:40:06 +01:00
|
|
|
```
|
|
|
|
|
|
|
|
In the sample above, if `$input` is an integer, then it must be positive.
|
2017-10-15 19:48:12 +02:00
|
|
|
If `$input` is not an integer, then it must not be empty.
|
2015-01-30 09:40:06 +01:00
|
|
|
When `$else` is not defined use [AlwaysInvalid](AlwaysInvalid.md)
|
|
|
|
|
2019-05-11 18:32:13 +02:00
|
|
|
## Categorization
|
|
|
|
|
|
|
|
- Conditions
|
|
|
|
- Nesting
|
|
|
|
|
2017-03-27 22:04:13 +02:00
|
|
|
## Changelog
|
|
|
|
|
|
|
|
Version | Description
|
|
|
|
--------|-------------
|
|
|
|
0.8.0 | Allow to use rule without else
|
|
|
|
0.3.9 | Created
|
|
|
|
|
2015-08-20 06:38:41 +02:00
|
|
|
***
|
2015-01-30 09:40:06 +01:00
|
|
|
See also:
|
|
|
|
|
2017-03-28 11:53:14 +02:00
|
|
|
- [AllOf](AllOf.md)
|
2018-12-11 13:31:50 +01:00
|
|
|
- [AlwaysInvalid](AlwaysInvalid.md)
|
|
|
|
- [AnyOf](AnyOf.md)
|
2017-03-28 11:53:14 +02:00
|
|
|
- [NoneOf](NoneOf.md)
|
2018-12-11 13:31:50 +01:00
|
|
|
- [OneOf](OneOf.md)
|