FormRequest - окремий клас, що містить правила валідації та авторизацію, виносячи їх із контролера.
class StorePostRequest extends FormRequest
{
public function authorize(): bool
{
return $this->user()->can('create', Post::class);
}
public function rules(): array
{
return ['title' => ['required', 'max:255']];
}
}
// $request - вже провалідовано
public function store(StorePostRequest $request)
{
Post::create($request->validated());
}
Переваги: тонкі контролери, перевикористання правил, метод prepareForValidation() для нормалізації вводу, кастомні повідомлення в messages().