Ошибка Laravel Validator из-за преобразования массива в строку

Я пытаюсь проверить этот вход:

$values = [ 'id' => $input['id'][$i], 'template_id' => $input['template_id'][$i], 'schedulable_id' => $id, 'schedulable_type' => $type, 'order_by' => $i ]; 

Против этих правил, найденных в моем классе «Расписание»:

 public static $rules = [ 'template_id' => 'required|integer|exists:templates,id', 'schedulable_id' => 'required|integer', 'schedulable_type' => 'required|in:Item,Order', 'order_by' => 'integer' ]; 

Когда я делаю следующее, я всегда получаю массив для преобразования ошибки преобразования в «/laravel/vendor/laravel/framework/src/Illuminate/Validation/Validator.php» в строке 905:

 $validator = Validator::make($values, Schedule::$rules); if ($validator->fails()) { $errors[$i] = $validator->messages(); continue; } 

Почему это происходит?

Просто я обнаружил, что у меня был Ardent $forceEntityHydrationFromInput = true и мой ввод не может быть вытащен непосредственно из Input для целей проверки из-за того, что он представлен как массив частично ссылочных значений.

Чтобы исправить это, измените значение на $forceEntityHydrationFromInput = false и используйте стандартную процедуру проверки ввода, вместо того чтобы полагаться на магию Ардента.

Иногда умные пакеты слишком умны.