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

Правило required

Правило required является одним из самых часто используемых правил валидации в Laravel. Оно проверяет, что переданное поле присутствует в данных запроса и не является пустым. При этом пустыми считаются следующие значения: пустая строка, пустой массив, null или значение false. Если поле отсутствует в запросе или содержит одно из перечисленных значений, валидация не проходит и выводится сообщение об ошибке.

Синтаксис

Правило required используется в массиве правил валидации:

<?php $rules = [ 'field_name' => 'required', ]; ?>

Можно комбинировать с другими правилами через вертикальную черту:

<?php $rules = [ 'email' => 'required|email|min:6', ]; ?>

Пример

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

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; class AuthController extends Controller { public function register(Request $request) { $validator = Validator::make($request->all(), [ 'name' => 'required|string|max:50', 'email' => 'required|email|unique:users', 'password' => 'required|min:6', ]); if ($validator->fails()) { return response()->json([ 'errors' => $validator->errors() ], 422); } return response()->json([ 'message' => 'Registration successful' ], 200); } } ?>

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

{ "errors": { "name": ["The name field is required."] } }

Пример

Использование правила required в Form Request для создания статьи:

<?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; class ArticleRequest extends FormRequest { public function authorize() { return true; } public function rules() { return [ 'title' => 'required|string|max:200', 'content' => 'required|string|min:50', 'category_id' => 'required|integer|exists:categories,id', 'is_published' => 'boolean', ]; } public function messages() { return [ 'title.required' => 'The title field is mandatory', 'content.required' => 'Please provide article content', 'category_id.required' => 'Category must be selected', ]; } } ?>

Пример использования запроса в контроллере:

<?php namespace App\Http\Controllers; use App\Http\Requests\ArticleRequest; use App\Models\Article; class ArticleController extends Controller { public function store(ArticleRequest $request) { $article = Article::create($request->validated()); return response()->json([ 'id' => $article->id, 'message' => 'Article created successfully' ], 201); } } ?>

Пример

Валидация массива с обязательными элементами:

<?php use Illuminate\Support\Facades\Validator; $data = [ 'users' => [ ['name' => 'John', 'email' => 'john@example.com'], ['name' => 'Jane', 'email' => ''], ] ]; $validator = Validator::make($data, [ 'users.*.name' => 'required|string', 'users.*.email' => 'required|email', ]); $res = $validator->fails(); echo $res; ?>

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

"1"

В данном примере валидация не проходит, потому что у второго пользователя поле 'email' пустое.

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

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