2017-09-11 4 views
0

Ich bin eine Anwendung mit mehreren Benutzerrollen und Aktionen erstellen. Ich folgte dem offiziellen Laravel Doc (https://laravel.com/docs/5.5/middleware#middleware-parameters).Laravel 5.5 Erhalten Sie Benutzerdetails in Konstruktor

Aber in meinem Controller-Konstruktor (von dem ich die obige Middleware anrufe) verwende ich Auth-Fassade, um Benutzerdetails zu erhalten. Ich weiß, wie man Auth Fassade benutzt, ich hatte es an mehreren Stellen in meiner Anwendung implementiert. Aber wenn ich es innerhalb des Konstruktors verwende, gibt es null zurück (im eingeloggten Zustand - das habe ich zweimal überprüft).

ich es so implementiert, ich habe zwei Controller nennen (da nur für angemeldete Benutzer die Seite zugreifen können)

public function __construct() 
{ 
    $role = Auth::user()->role; 
    $this->middleware('auth'); 
    $this->middleware('checkRole:$role'); 
} 

PS: Ich habe versucht, $ role Variable als geschützt und außerhalb der Konstruktor initialisiert werden, nach wie vor funktioniert nicht. Irgendwelche Vorschläge werden hilfreich sein

Vielen Dank.

+0

Ich verstehe nicht, warum Laravel nicht Auth innerhalb Konstruktor zuließ. – Grald

Antwort