Form Requests
Dedicated request classes for validation logic
Form Requests are dedicated classes for handling validation and authorization, keeping your controllers clean.
Move validation out of your controller into a dedicated request class. Keeps controllers thin.
Before
Controller
validate()
authorize()
create()
Bloated controller
After
FormRequest
authorize()
rules()
Controller
create()
Clean separation
PHP
// Before: validation in controller
public function store(Request $request) {
$request->validate([
'title' => 'required|max:255',
'body' => 'required',
'tags' => 'array|max:5',
]);
Post::create($request->all());
}
// After: use a Form Request
public function store(StorePostRequest $request) {
Post::create($request->validated());
}