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());
}