РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
604 of 1392 menu

Правило filled

Правило filled используется в валидации для проверки, что поле присутствует в запросе и не является пустым. В отличие от правила required, правило filled проверяет поле только в том случае, если оно присутствует в запросе. Если поле отсутствует, валидация считается успешной. Если поле присутствует, оно не должно быть пустым.

Правило filled полезно в ситуациях, когда нужно проверить переданные поля на заполненность, но не требовать их обязательного присутствия. Например, при обновлении профиля пользователь может изменить только те поля, которые считает нужным.

Синтаксис

<?php use IlluminateHttpRequest; use IlluminateSupportFacadesValidator; $validator = Validator::make($request->all(), [ 'field_name' => 'filled' ]); ?>

Пример

Давайте создадим валидацию для обновления профиля пользователя, где поле 'name' может быть не передано, но если передано, то должно быть заполнено:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; use IlluminateSupportFacadesValidator; class ProfileController extends Controller { public function update(Request $request) { $validator = Validator::make($request->all(), [ 'name' => 'filled|string|max:255' ]); if ($validator->fails()) { return response()->json($validator->errors(), 422); } return response()->json(['message' => 'Profile updated']); } } ?>

Результат выполнения кода при отсутствии поля 'name' в запросе:

{"message": "Profile updated"}

Результат выполнения кода при наличии пустого поля 'name':

{"name": ["The name field must be filled"]}

Пример

Давайте используем правило filled в классе FormRequest для валидации данных обновления статьи:

<?php namespace AppHttpRequests; use IlluminateFoundationHttpFormRequest; class UpdateArticleRequest extends FormRequest { public function authorize(): bool { return true; } public function rules(): array { return [ 'title' => 'filled|string|max:255', 'content' => 'filled|string', 'status' => 'filled|string|in:draft,published' ]; } } ?>

При передаче всех полей заполненными, валидация будет успешной. Если передать поле 'title' со значением пустой строки, валидация не пройдёт:

{"title": ["The title field must be filled"]}

Пример

Правило filled отлично работает с массивами. Давайте проверим, что переданные элементы массива не являются пустыми:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; use IlluminateSupportFacadesValidator; class PostController extends Controller { public function store(Request $request) { $validator = Validator::make($request->all(), [ 'tags' => 'filled|array', 'tags.*' => 'filled|string|max:50' ]); if ($validator->fails()) { return response()->json($validator->errors(), 422); } return response()->json(['message' => 'Success']); } } ?>

Результат выполнения кода при передаче массива с пустым элементом:

{"tags.0": ["The tags.0 field must be filled"]}

Смотрите также

  • правило required,
    которое требует обязательного присутствия поля
  • правило nullable,
    которое позволяет полю быть нулевым
  • правило present,
    которое проверяет наличие поля в запросе
  • правило sometimes,
    которое применяет правила только при наличии поля
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить