Form Requests in Laravel are custom request classes that contain validation and permission logic. Delegating validation to Form Requests allows you to keep controllers clean and manageable.
Form Requests were created to simplify validation by transferring it from controllers to dedicated classes.
To validate a request for creating a post, generate a Form Request:
php artisan make:request StorePostRequest
In StorePostRequest
, define validation rules:
public function rules()
{
return [
'title' => 'required|max:255',
'content' => 'required',
];
}
In the controller, inject the request:
public function store(StorePostRequest $request)
{
Post::create($request->validated());
}