Laravel provides multiple validation approaches.
Methods
$request->validate()� inlineFormRequestclass � reusableValidator::make()� manual
Laravel provides multiple validation approaches.
$request->validate() � inlineFormRequest class � reusableValidator::make() � manual$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"]; }
<?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", ]);
Create a FormRequest for user registration.
class RegisterRequest extends FormRequest {
public function rules() {
return ["name" => "required", "email" => "required|email|unique:users", "password" => "required|min:8|confirmed"];
}
}
What does "exists:users,email" check?
Validates the value exists in the users.email column.
Inline for simple one-off. FormRequest for reusable, testable validation logic.