mirror of
https://github.com/Respect/Validation.git
synced 2024-06-03 06:12:17 +02:00
24885e4a5f
Because we have the Key and Property rules, the KeyNested is redundant, although it's a helpful shortcut. The real problem is dealing with messages and templates because the structure of the validator needs to match the structure of the rule. When using the `getMessages()` method from the exception we throw in `assert()`, we get a flat structure, which is often not the intended structure. The KeyNested rule is cool, but it adds some complexity to the codebase that I'm unwilling to deal with. It's not nice to remove a rule, especially because I know people use it, but it's for the best. I'm trying to keep the codebase small, so hopefully, it will get easier to maintain. Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
1.6 KiB
1.6 KiB
Key
Key(int|string $key, Validatable $rule)
Validates the value of an array against a given rule.
v::key('name', v::stringType())->validate(['name' => 'The Respect Panda']); // true
v::key('email', v::email())->validate(['email' => 'therespectpanda@gmail.com']); // true
v::key('age', v::intVal())->validate([]); // false
You can also use Key
to validate nested arrays:
v::key(
'payment_details',
v::key('credit_card', v::creditCard())
)->validate([
'payment_details' => [
'credit_card' => '5376 7473 9720 8720',
],
]); // true
The name of this validator is automatically set to the key name.
v::key('email', v::email())->assert([]);
// message: email must be present
v::key('email', v::email())->assert(['email' => 'not email']);
// message: email must be valid email
Note
- To validate if a key exists, use KeyExists instead.
- To validate an array against a given rule if the key exists, use KeyOptional instead.
Categorization
- Arrays
- Nesting
- Structures
Changelog
Version | Description |
---|---|
3.0.0 | Split by KeyExists and KeyOptional |
0.3.9 | Created |
See also: