Cos’è una sessione
HTTP è un protocollo stateless. HTTP di per sé non ha meccanismi per mantenere le informazioni utente tra le richieste. La sessione di Laravel offre un modo per mantenere i dati dell’utente attraverso più richieste. Nella sessione salvi informazioni che vuoi mantenere tra le richieste: stato di login, articoli nel carrello, dati parziali di un form.Configurazione del driver di sessione
Le impostazioni della sessione sono inconfig/session.php.
Puoi cambiare il driver tramite la variabile d’ambiente SESSION_DRIVER (file .env).
Nel progetto Laravel di default è configurato il driver
database. Con database serve la tabella sessions, già inclusa nelle migration predefinite: puoi usarla così com’è.Come accedere alla sessione
Puoi accedere alla sessione in due modi: tramite i metodi dell’istanzaRequest o tramite l’helper globale session().
Usando l’istanza Request
RiceviRequest come type hint nel metodo del controller e accedi con $request->session().
Usando l’helper globale session()
L’helper session() puoi chiamarlo da controller, viste o ovunque.
Operazioni sulla sessione
Lettura dei dati
Verifica dell’esistenza
has ed exists.
Scrittura dei dati
Rimozione dei dati
Dati flash
I dati flash sono dati di sessione validi solo per la richiesta successiva. Sono adatti a informazioni da mostrare una sola volta, come un messaggio di successo o un errore di form.Salvare dati con flash()
Estendere i dati flash
Mostrare messaggi flash in Blade
Esempio pratico: messaggi dopo l’invio di un form
Salvare un messaggio di successo in sessione e reindirizzare per mostrarlo nella pagina successiva è un pattern classico delle app web.1
Definizione delle route
2
Implementazione del controller
Nel metodo
store che riceve il form, dopo il salvataggio reindirizza con un messaggio di successo.redirect()->with('success', '...') è la scorciatoia per passare dati flash alla destinazione del redirect.3
Mostra il messaggio nel layout
Aggiungi la parte di visualizzazione dei messaggi flash a
resources/views/layouts/app.blade.php.4
Crea la vista dell'elenco
Pattern combinato con errori di validazione
In caso di validazione fallita si combinaback()->withErrors().
Laravel salva automaticamente gli errori come dati flash, così in Blade puoi usare la variabile $errors.
Prossimi passi
Validazione
Rivedi come validare i dati di input dei form.