Fix the validation of an array of objects
- [X] Update the source code;
- [x] Create some tests with nested structures or empty array as input
- [x] Update the documentation
- [ ] Create a test with an array in POST and another parameter in GET
Close #39.
Doesn't work if you mix post array objects with query params:
POST /someurl?test=1
[1,2,3]
in Validation.php: __invoke $params = $request->getParams(); will be:
Array
(
[test] => 1
[0] => 1
[1] => 2
[2] => 3
)
Hi @tamaspanczel. Is it related to this PR? If yes, in which way? If not, please create an issue for this problem.
Ok, I'll create an issue for this, thx.
Hey @DavidePastore, this doesn't appear to be working as I expected. I think I led you astray with the use of v::each(). I've taken a closer look at the documentation for each() (https://respect-validation.readthedocs.io/en/1.1/rules/Each/) and it seems like the validator iterates over only key:value pairs of an array, not any objects within an array.
Per my feature request (https://github.com/DavidePastore/Slim-Validation/issues/39), I am trying to validate key:value pairs within an array of objects, so I'm not sure this PR would fix that.
However, it seems like a good enhancement regardless since it allows generic validation of array input such as
[
"key1": "value1",
"key2": "value2"
]
I don't have any routes with this format, so I don't think I can verify this PR for you currently.