Skip to content
Home Tutorials Roadmaps Courses
Log in Join free
Tutorials Laravel Validation
Laravel Advanced FREE

Validation

Lesson 2 of 17 Advanced Interactive

Laravel provides multiple validation approaches.

Methods

  • $request->validate() � inline
  • FormRequest class � reusable
  • Validator::make() � manual

Syntax

LARAVEL
$request->validate([
    "name" => "required|string|max:100",
    "email" => "required|email|unique:users",
    "age" => "required|integer|min:18",
]);

// FormRequest
public function rules() {
    return ["title" => "required|max:255", "body" => "required|min:10"];
}
Laravel Validation
PHP
<?php
// Controller method
public function store(Request $request)
{
    $validated = $request->validate([
        "name" => "required|string|max:255",
        "email" => "required|email|unique:users,email",
        "age" => "required|numeric|min:18|max:120",
        "avatar" => "nullable|image|mimes:jpg,png|max:2048",
        "password" => "required|confirmed|min:8",
    ]);

    // Or with FormRequest
}

// Custom error messages
$messages = [
    "email.required" => "An email is required.",
    "age.min" => "You must be at least 18.",
];

// Sometimes validation
$request->validate([
    "contact" => "sometimes|required|phone",
]);

Practice

1
Exercise

Create a FormRequest for user registration.

Answer
class RegisterRequest extends FormRequest {
    public function rules() {
        return ["name" => "required", "email" => "required|email|unique:users", "password" => "required|min:8|confirmed"];
    }
}

Quick Quiz

1

What does "exists:users,email" check?

Validates the value exists in the users.email column.

Interview Questions

Inline for simple one-off. FormRequest for reusable, testable validation logic.