Валідація перевіряє вхідні дані за набором правил перш ніж їх використати. Laravel має багату систему правил і кілька способів валідації.
1. Метод validate() прямо в контролері (найпростіше):
$validated = $request->validate([
'title' => ['required', 'string', 'max:255'],
'email' => ['required', 'email', 'unique:users,email'],
'age' => ['nullable', 'integer', 'min:18'],
]);
Якщо перевірка не пройдена, Laravel автоматично:
- для веб-запитів - робить редирект назад зі старими даними та помилками в сесії (доступні через
$errorsу Blade); - для API (запит очікує JSON) - повертає відповідь 422 зі структурою
{ "message": ..., "errors": {...} }.
2. FormRequest - для складнішої логіки правила й авторизацію виносять в окремий клас:
php artisan make:request StorePostRequest
public function rules(): array
{
return ['title' => ['required', 'max:255']];
}
Це розвантажує контролер. Є десятки вбудованих правил (required, email, unique, exists, confirmed, date), власні правила та умовна валідація.