Skip to main content

Cos’è una response

Un controller o una route devono restituire una qualche response al browser dell’utente. Laravel offre un meccanismo semplice per restituire response di vari formati: stringhe, array, viste, redirect, JSON e altro.

Response di base

Restituire una stringa

La response più semplice è la restituzione di una stringa. Laravel la converte automaticamente in una response HTTP appropriata.

Restituire un array

Se restituisci un array, Laravel lo converte automaticamente in JSON.
Restituendo direttamente un modello Eloquent o una collezione, viene convertito automaticamente in JSON. È un pattern molto usato per creare API velocemente.

Restituire un modello Eloquent

Oggetto Response

Con l’helper response() puoi restituire una response con codice HTTP e header specifici.
Il primo argomento di response() è il body, il secondo il codice HTTP.

Codici HTTP più usati

Response di una vista

Per mostrare un template Blade da un controller usa view(). È la response più comune nelle applicazioni web.
Il primo argomento di view() è il nome della vista, il secondo un array di dati da passare.
Indicando come type hint del valore di ritorno Illuminate\View\View rendi chiara l’intenzione del codice.

Controllo dettagliato con response()->view()

Se vuoi indicare anche codice e header usa response()->view().

Redirect

Redirect di base

L’helper redirect() restituisce una response di redirect. Molto usato per inviare l’utente a un’altra pagina dopo l’invio di un form.
Esempio d’uso in un controller.

Redirect verso una route con nome

Con la funzione route() puoi indicare la destinazione tramite il nome della route senza scrivere direttamente l’URL. Poiché non serve modificare il codice se l’URL cambia, la best practice è sfruttare le route con nome.

Tornare alla pagina precedente

Con back() torni alla pagina in cui l’utente era prima. Molto usato per il redirect in caso di errori di validazione.

Redirect con messaggi flash

Con with() puoi allegare un messaggio in sessione al redirect. Utile per mostrare un messaggio dopo il successo di un form.
Mostra il messaggio nel template Blade.

Response JSON

Quando crei API usa response()->json() per restituire una response JSON. Viene impostato automaticamente l’header Content-Type: application/json.
Puoi specificare anche il codice.
Esempio d’uso in un controller.
Anche restituendo semplicemente un array o un modello Eloquent ottieni una response JSON, ma con response()->json() puoi controllare codice e header nel dettaglio.

Header della response

Con il metodo header() aggiungi header HTTP alla response.
Per impostare più header in un unico passaggio usa withHeaders().

Esempio pratico: uso differenziato nei controller

Esempio che riassume l’uso delle response in base allo scopo.
1

Definizione delle route

2

Implementazione del controller

Nelle app web l’uso di View e RedirectResponse è fondamentale. Il pattern tipico è restituire View per le azioni di visualizzazione e RedirectResponse per le azioni di modifica (creazione, aggiornamento, eliminazione) dopo l’elaborazione.

Prossimi passi

Validazione

Rivedi come validare i dati di input prima di restituire la response.
Ultima modifica il 13 luglio 2026