Код: Выделить всё
{
"field1": "some value",
"array1": {
"2876": "4358",
"9904": "17"
}
}
< /code>
массив 1 может разумно содержать до 50 пары значений ключей. $validation = \Config\Services::validation();
$validation->setRules([
'field1' => 'required|max_length[20]',
'array1.*' => 'required|numeric',
]);
if (! $validation->withRequest($this->request)->run()) {
return $this->failValidationErrors($validation->getErrors());
}
< /code>
Альтернативно основан на ответе, который я видел в другом месте: < /p>
$validation = \Config\Services::validation();
$validation->setRules([
'field1' => 'required|max_length[20]'
]);
$to_validate = $this->request->getPost();
foreach ($to_validate['array1'] as $key => $value) {
$validation->setRule('array1.' . $key , null, 'required|numeric');
}
if (! $validation->withRequest($this->request)->run()) {
return $this->failValidationErrors($validation->getErrors());
}
Подробнее здесь: https://stackoverflow.com/questions/794 ... tive-array