DEV Community

Cover image for 🧼 Laravel Form Request: valida come un professionista | 🧼 Validate Like a Pro with Laravel Form Request
Roberto Celano
Roberto Celano

Posted on

🧼 Laravel Form Request: valida come un professionista | 🧼 Validate Like a Pro with Laravel Form Request

Introduzione | Introduction

Italiano: Questo articolo è disponibile sia in italiano che in inglese. Scrolla verso il basso per la versione in inglese.

English: This article is available in both Italian and English. Scroll down for the English version.


🇮🇹 Laravel Form Request: guida pratica

Se stai ancora validando i tuoi form direttamente nel controller... è il momento di salire di livello.

Laravel ti offre una soluzione elegante: le Form Request class.

🧠 Perché usare le Form Request?

✅ Separano la logica di validazione dal controller

✅ Rendono il codice più leggibile e manutenibile

✅ Permettono autorizzazioni e logica custom

✅ Perfette per progetti professionali


✨ Creazione di una Form Request

Per creare una request personalizzata, usa Artisan:

php artisan make:request StorePostRequest
Enter fullscreen mode Exit fullscreen mode

Laravel genererà una classe in app/Http/Requests.


🛡️ Autorizzazione

Nel metodo authorize() puoi controllare se l’utente è autorizzato a eseguire l’azione:

public function authorize(): bool
{
    return auth()->check(); // o true se vuoi bypassare
}
Enter fullscreen mode Exit fullscreen mode

🧾 Regole di validazione

Nel metodo rules() definisci le regole:

public function rules(): array
{
    return [
        'title' => 'required|string|max:255',
        'content' => 'required|min:10',
    ];
}
Enter fullscreen mode Exit fullscreen mode

🧩 Come usarla nel controller

Nel tuo controller, invece di usare Request $request, tipizza la classe:

use App\Http\Requests\StorePostRequest;

public function store(StorePostRequest $request)
{
    // Se arrivi qui, i dati sono già validati
    Post::create($request->validated());
}
Enter fullscreen mode Exit fullscreen mode

📌 Suggerimenti extra

  • Usa messages() per messaggi personalizzati
  • Usa attributes() per rinominare i campi nell'errore
  • Puoi usare FormRequest anche per API

🇬🇧 Laravel Form Request: a practical guide

Still validating your form data directly in your controller?

It’s time to level up and embrace Form Request classes in Laravel.

🧠 Why use Form Requests?

✅ Separates validation logic from controller

✅ Makes code cleaner and easier to maintain

✅ Supports authorization and custom logic

✅ A professional approach to input handling


✨ Create a Form Request

Generate a request using Artisan:

php artisan make:request StorePostRequest
Enter fullscreen mode Exit fullscreen mode

Laravel will place the file in app/Http/Requests.


🛡️ Authorization

Define authorization in the authorize() method:

public function authorize(): bool
{
    return auth()->check(); // or true to allow
}
Enter fullscreen mode Exit fullscreen mode

🧾 Validation rules

Define your rules in the rules() method:

public function rules(): array
{
    return [
        'title' => 'required|string|max:255',
        'content' => 'required|min:10',
    ];
}
Enter fullscreen mode Exit fullscreen mode

🧩 Use in the controller

In your controller, type-hint the custom request:

use App\Http\Requests\StorePostRequest;

public function store(StorePostRequest $request)
{
    Post::create($request->validated());
}
Enter fullscreen mode Exit fullscreen mode

📌 Extra tips

  • Customize error messages via messages()
  • Rename fields in errors via attributes()
  • Works great for APIs too!

✅ Conclusione | Conclusion

Separare la validazione dal controller rende il tuo codice più chiaro, sicuro e professionale.

Separating validation from your controller makes your code cleaner, safer, and more professional.


Traduzione:

Questo articolo è stato tradotto con l'ausilio di strumenti di traduzione professionali.

Translation:

This article was translated with the help of professional translation tools.

Top comments (0)