Я пытаюсь проверить этот вход:
$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
и используйте стандартную процедуру проверки ввода, вместо того чтобы полагаться на магию Ардента.
Иногда умные пакеты слишком умны.