2016-10-10 2 views
0

Ich versuche, in Laravel 5.3 eine benutzerdefinierte Fehlerseite zu erstellen. Ich wollte die Variable in der Session wie Session::get("username") abrufen abrufen, aber was ich bekomme, ist eine leere Variable.Zugriff auf Sitzungsvariable in benutzerdefinierten Larawel-Fehlerseiten

Wie soll ich eine Session Variable in einer benutzerdefinierten Fehlerseite in Laravel erhalten oder ist das nicht möglich?

+1

Session :: get ("Benutzername") wird verwendet, um auf eine Sitzungsvariable zuzugreifen. Aber um es zu überprüfen, drucken Sie alle Session-Werte und überprüfen Sie, ob der Index verfügbar ist oder nicht –

+0

Ich habe 'dd (Session :: all()) 'verwendet, um alle' Session'-Variablen auf der Fehlerseite auszugeben, aber sie sind leer. Ich kann auf die Variable in nicht fehlerhaften Seiten gut zugreifen. Alle meine 'Session'-Variablen werden während der Anmeldung gesetzt. – Woody

+0

Auf welcher Fehlerseite haben Sie Ihre 'dd (Session :: all())' versucht? –

Antwort

2

Da Laravel die Route nicht gefunden hat, haben Sie die Middleware \Illuminate\Session\Middleware\StartSession (standardmäßig in der Middlewaregruppe web) nicht durchlaufen, sodass Ihre Sitzung nicht gestartet wird.

Ihre Sitzung initialisiert haben, \Illuminate\Session\Middleware\StartSession::class,web-$middleware in Kernel.php bewegen:

protected $middleware = [ 
    \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class, 
    \Illuminate\Session\Middleware\StartSession::class, 
], 

Middlewares in $midleware wird immer ausgeführt, so dass Ihre Sitzung initialisiert wird, auch wenn die Strecke nicht gefunden wird.

+0

Das hat funktioniert! Gibt es einen Nachteil, wenn die "Session" für jede einzelne Route in Laravel aktiviert ist? – Woody

+0

Ich kann nicht sagen ... –

Verwandte Themen