Не получается отловить исключение при валидации Codeigniter 4

Рейтинг: 0Ответов: 0Опубликовано: 26.05.2023

Отправляю json методом post на контроллер через curl. В контроллере написано следующее:

try
{
    $input = $this->request->getJSON(true);
    $this->validation->setRules([
        'arrayValues.*.someId'  => 'trim|required|string'
    ]);
    $this->validation->run($input);
}
catch (\Exception $e)
{
    $result = false;
}

Ожидаемый верный декодированный массив:

$decodedArray = ['arrayValues' => [['someId' => 'qwe'],['someId' => 'ewq']]];

В результате выполнения получаю ошибку внутри блока try/catch и в блок catch не переходит.

Это происходит если приходят данные, не во вложенном массиве: "Argument 2 passed to _array_search_dot() must be of the type array, string given, called in /codeigniter/system/Helpers/array_helper.php on line 56:

$decodedArray = ['arrayValues' => ['someId' => 'qwe']];

Если приходит пустой массив, то получаю ошибку /codeigniter/system/Validation/Validation.php(266): trim() -> trim() expects parameter 1 to be string, array given, но она ловится в try/catch нормально.

$decodedArray = ['arrayValues' => []];

Почему такое происходит и как от этого избавиться?

Ответы

Ответов пока нет.