Skip to main content

Cos’è la validazione

La validazione consiste nel verificare che i dati inviati dall’utente soddisfino il formato e le condizioni attese. Laravel offre una funzionalità di validazione semplice e potente tramite il metodo validate dell’oggetto request o tramite classi form request dedicate.

Validazione nel controller

Uso di $request->validate()

Chiamare $request->validate() all’interno del metodo del controller è il modo più semplice di validare. Se la validazione fallisce, Laravel reindirizza automaticamente l’utente alla schermata precedente e salva gli errori in sessione. Definisci le route.
Crea il controller.
Al metodo validate passi un array con nome del campo come chiave e regole come valore. Puoi separare le regole con il pipe | o indicarle come array.

Regole di validazione principali

Puoi consultare tutte le regole disponibili nella documentazione ufficiale.

Uso dei dati validati

Il valore restituito da validate è un array che contiene solo i dati che hanno superato la validazione. Puoi usarli in modo sicuro come dati affidabili.

Visualizzazione degli errori in Blade

Se la validazione fallisce, Laravel rende automaticamente disponibile in tutte le viste la variabile $errors. Se ne occupa il middleware ShareErrorsFromSession incluso nel gruppo web.

Mostrare tutti gli errori in un elenco

Mostrare gli errori per singolo campo

Con la direttiva @error puoi mostrare inline l’errore di un campo specifico.
Con old('nomecampo') puoi ripopolare il form con i valori inseriti dall’utente anche dopo un fallimento della validazione.

Form request

Cosa sono le form request

Quando la logica di validazione diventa complessa, è utile estrarla in classi “form request”. Una form request è una classe request personalizzata che raccoglie in un’unica classe la logica di validazione e di autorizzazione.

Creazione di una form request

Genera una classe form request con il comando Artisan make:request.
Viene generato app/Http/Requests/StorePostRequest.php.

Metodo rules()

Restituisce le regole di validazione come array. Stesso formato dell’array passato a validate del controller.

Metodo authorize()

Determina se l’utente è autorizzato a eseguire la richiesta. Restituendo true l’autorizzazione è concessa; restituendo false viene restituita automaticamente una response 403. Se vuoi consentire solo agli utenti autenticati puoi verificare con auth()->check(). Nel tutorial è sufficiente restituire true.
Se authorize restituisce false, il metodo del controller non viene eseguito e viene restituita una response 403 Forbidden.

Iniezione nel controller

Basta indicare la form request come type hint del metodo del controller. La validazione viene eseguita prima che il controller venga chiamato, quindi non serve scriverla nel metodo.
Con $request->validated() ottieni solo i dati validati.

Esempio pratico: creazione e salvataggio di un form di post

Il flusso completo dalla visualizzazione del form all’invio, validazione e salvataggio.
1

Definizione delle route

2

Creazione della form request

3

Implementazione del controller

4

Creazione del template Blade

Nei form Blade includi sempre la direttiva @csrf. Senza il token CSRF Laravel restituisce l’errore 419.

Prossimi passi

Richieste HTTP

Rivedi come ottenere i dati usando l’oggetto request.
Ultima modifica il 13 luglio 2026