Я хотел бы подтвердить следующий json в Ci4: < /p>
{
"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());
}
< /code>
Этот код успешно отклоняет значение «ABCD», но как мне отклонить строковую клавишу? в их собственном массиве, который может быть подтвержден с помощью массива2.* Правило. проверить?
Подробнее здесь: https://stackoverflow.com/questions/794 ... tive-array
Codeigniter 4 Валидация ключей в ассоциативном массиве ⇐ Php
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение