DavidePastore / Slim-Validation

A validation library for the Slim Framework. It internally uses Respect/Validation.
170 stars 30 forks source link

Fix the validation of an array of objects #40

Open DavidePastore opened 6 years ago

DavidePastore commented 6 years ago

Close #39.

tamaspanczel commented 6 years ago

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
)
DavidePastore commented 6 years ago

Hi @tamaspanczel. Is it related to this PR? If yes, in which way? If not, please create an issue for this problem.

tamaspanczel commented 6 years ago

Ok, I'll create an issue for this, thx.

craig-cogdill commented 5 years ago

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.