mirror of
https://github.com/Respect/Validation.git
synced 2026-03-18 08:09:51 +01:00
Since we have the ability to use `not` as a prefix, having rules that validate negative behaviour makes them a bit inflexible, verbose, and harder to understand. This commit will refactor the `NotEmpty`, and rename it to `Falsy`. It will no longer trim strings, because Blank does a much better job at it; it only simulates the behaviour of PHP’s native `empty()` function. Because `Falsy`, `Blank`, and `Undef` have similar behaviour, I created a page to demonstrate the difference and show when the user should use one or the other. Assisted-by: Cursor (claude-4.5-opus-high)
52 lines
1.4 KiB
Markdown
52 lines
1.4 KiB
Markdown
# When
|
|
|
|
- `When(Rule $if, Rule $then)`
|
|
- `When(Rule $if, Rule $then, Rule $else)`
|
|
|
|
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
|
|
v::when(v::intVal(), v::positive(), v::notBlank())->isValid(1); // true
|
|
v::when(v::intVal(), v::positive(), v::notBlank())->isValid('non-blank string'); // true
|
|
|
|
v::when(v::intVal(), v::positive(), v::notBlank())->isValid(-1); // false
|
|
v::when(v::intVal(), v::positive(), v::notBlank())->isValid(''); // false
|
|
```
|
|
|
|
In the sample above, if `$input` is an integer, then it must be positive.
|
|
If `$input` is not an integer, then it must not be blank.
|
|
When `$else` is not defined use [AlwaysInvalid](AlwaysInvalid.md)
|
|
|
|
## Templates
|
|
|
|
## Template placeholders
|
|
|
|
| Placeholder | Description |
|
|
| ----------- | ---------------------------------------------------------------- |
|
|
| `subject` | The validated input or the custom validator name (if specified). |
|
|
|
|
## Categorization
|
|
|
|
- Conditions
|
|
- Nesting
|
|
|
|
## Changelog
|
|
|
|
| Version | Description |
|
|
| ------: | ------------------------------ |
|
|
| 0.8.0 | Allow to use rule without else |
|
|
| 0.3.9 | Created |
|
|
|
|
---
|
|
|
|
See also:
|
|
|
|
- [AllOf](AllOf.md)
|
|
- [AlwaysInvalid](AlwaysInvalid.md)
|
|
- [AnyOf](AnyOf.md)
|
|
- [Circuit](Circuit.md)
|
|
- [NoneOf](NoneOf.md)
|
|
- [OneOf](OneOf.md)
|