Я пытаюсь проверить массив POST в Laravel:
$validator = Validator::make($request->all(), [
"name.*" => 'required|distinct|min:3',
"amount.*" => 'required|integer|min:1',
"description.*" => "required|string"
]);
Я отправляю пустой POST и получаю это if ($validator->fails()) {}
как False
. Это означает, что проверка верна, но это не так.
Как проверить массив в Laravel? Когда я отправляю форму сinput name="name[]"
php
laravel
laravel-5.4
Дарама
источник
источник
$request->validate([...])
. Если данные не прошли проверку, возникнет исключение.У меня есть этот массив в качестве данных моего запроса из сетки / таблицы данных HTML + Vue.js:
И используйте это, чтобы проверить, что работает правильно:
источник
Рекомендуемый способ написания логики проверки и авторизации - поместить эту логику в отдельные классы запросов. Таким образом, код вашего контроллера останется чистым.
Вы можете создать класс запроса, выполнив
php artisan make:request SomeRequest
.В каждом
rules()
методе класса запроса определите свои правила проверки:В вашем контроллере напишите функцию маршрута следующим образом:
Каждый класс запроса поставляется с перехватчиками / методами до и после проверки, которые можно настроить на основе бизнес-логики и особых случаев, чтобы изменить нормальное поведение класса запроса.
Вы можете создать родительские классы запросов для аналогичных типов запросов (например,
web
иapi
) запросов, а затем инкапсулировать некоторую общую логику запросов в эти родительские классы.источник
Немного более сложные данные, смесь ответов @Laran и @Nisal Gunawardana
Правило проверки будет
источник
Вам нужно перебрать входной массив и добавить правила для каждого входа, как описано здесь: Правила цикла
Вот вам код:
источник