Beginner LevelLaravel
How do Request Validation and Form Request classes work in Laravel?
❓ Interview Prompt: Explain $request->validate(), Form Request classes (php artisan make:request), rules(), authorize(), and custom messages.
Laravel provides multiple approaches to validate incoming HTTP data:
1. Direct Controller Validation:
Call '$request->validate(["email" => "required|email"])'. If validation fails, Laravel redirects back with errors automatically.
2. Form Request Classes (Recommended for clean code):
Encapsulates validation rules and authorization logic inside a dedicated class ('StoreUserRequest'). Keeps controllers thin and testable!
Code Implementation Example
php
<?php
namespace AppHttpRequests;
use IlluminateFoundationHttpFormRequest;
class StoreProductRequest extends FormRequest
{
public function authorize(): bool {
return $this->user()->can('create-product');
}
public function rules(): array {
return [
'name' => ['required', 'string', 'max:255'],
'price' => ['required', 'numeric', 'min:0.01'],
];
}
}💡Form Request class encapsulating authorization logic and validation rules.
🎯 Interview Key Takeaway
Use Form Request classes to separate validation and authorization rules from controller methods.
#Validation#Form Request#Security#Beginner
Back to all Laravel Questions→