В Laravel есть мощная система валидации, которая позволяет провалидировать исходные данные на основе различных правил. Часто бывает необходимо провалидировать не только отдельные поля, но и списки данных. Для этого можно использовать кастомные правила валидации.
Чтобы провалидировать список данных на Laravel в кастомном правиле, вы можете воспользоваться следующей последовательностью действий:
1. Создайте новый класс правила валидации. Для этого выполните команду php artisan make:rule ListValidationRule
в командной строке. Здесь ListValidationRule
- название вашего класса правила валидации.
2. Откройте созданный класс правила валидации и определите метод passes()
, который будет проводить валидацию. Например, вы можете проверить, что каждый элемент списка является целым числом:
public function passes($attribute, $value) { foreach ($value as $item) { if (!is_int($item)) { return false; } } return true; }
3. Определите метод message()
, который будет возвращать сообщение об ошибке при невалидном списке данных:
public function message() { return 'Список должен содержать только целые числа.'; }
4. Теперь, когда ваше кастомное правило валидации готово, вы можете использовать его в правилах валидации вашей формы или запроса. Например, вы можете провалидировать список данных для поля items
следующим образом:
public function store(Request $request) { $rules = [ 'items' => ['required', new ListValidationRule], ]; $validatedData = $request->validate($rules); }
В данном примере список данных будет считаться валидным, если он присутствует и каждый его элемент является целым числом. В противном случае, будет сгенерировано исключение ValidationException
с сообщением об ошибке.
Таким образом, вы можете провалидировать список на Laravel в кастомном правиле, определив класс правила валидации с методами passes()
и message()
, а затем использовать его в правилах валидации вашей формы или запроса. Это позволяет удобно и гибко контролировать корректность списка данных.