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

Метод validate

Метод validate вызывается непосредственно из объекта запроса и выполняет проверку входящих данных по заданным правилам. Первым параметром передаётся массив правил валидации, вторым - массив пользовательских сообщений об ошибках, третьим - массив атрибутов для замены в сообщениях. Если валидация не проходит, выбрасывается исключение ValidationException, и пользователь автоматически перенаправляется обратно с ошибками.

Синтаксис

<?php $request->validate($rules, $messages, $attributes); ?>

Пример

Давайте выполним валидацию данных в контроллере при создании статьи:

<?php namespace App\Http\Controllers; use App\Models\Article; use Illuminate\Http\Request; class ArticleController extends Controller { public function store(Request $request) { $validated = $request->validate([ 'title' => 'required|string|max:255', 'content' => 'required|string', 'status' => 'in:draft,published' ]); $article = Article::create($validated); return redirect('/articles')->with('success', 'Article created'); } } ?>

Пример

Давайте выполним валидацию с пользовательскими сообщениями об ошибках:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class ArticleController extends Controller { public function store(Request $request) { $validated = $request->validate([ 'email' => 'required|email', 'age' => 'required|integer|min:18', 'name' => 'required|string|max:50' ], [ 'email.required' => 'The email field is required', 'email.email' => 'Please enter a valid email address', 'age.min' => 'You must be at least 18 years old', 'name.max' => 'The name must not exceed 50 characters' ]); return $validated; } } ?>

Пример

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

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class UserController extends Controller { public function update(Request $request) { $validated = $request->validate([ 'username' => 'required|string|min:3', 'password' => 'required|string|min:8', 'email' => 'required|email' ], [ 'required' => 'The :attribute field is required', 'min' => 'The :attribute must be at least :min characters', 'email' => 'The :attribute must be a valid email address' ], [ 'username' => 'Username', 'password' => 'Password', 'email' => 'Email Address' ]); return $validated; } } ?>

Пример

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

<?php namespace App\Http\Controllers; use App\Models\Category; use Illuminate\Http\Request; class PostController extends Controller { public function store(Request $request) { $validated = $request->validate([ 'title' => 'required|string|max:200', 'category_id' => 'required|exists:categories,id', 'user_id' => 'required|exists:users,id' ]); return $validated; } } ?>

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

["title" => "My Post", "category_id" => 1, "user_id" => 5]

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

  • метод all,
    который получает все входящие данные запроса
  • метод only,
    который получает только указанные поля из запроса
  • метод input,
    который получает значение поля из запроса
  • метод validate,
    который выполняет валидацию данных в контроллере
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить