Ich hole Menüs aus der Datenbank basierend auf Benutzerrechten und zeige es auf meiner Webseite, aber wenn ich auf eine URL zugreifen, deren Zugriff ich nicht habe, dann öffnet es auch diese Seite. Dafür habe ich die access_denied-Funktion erstellt und aufgerufen, die die Homepage des Benutzers umleitet. Ich habe die Funktion access_denied vom Konstruktor von AuthController aufgerufen, weil AuthController auf jeder Seite geladen wird.Wie Funktion in __constructor mit Laravel 5 aufrufen?
Ich habe folgenden Code verwende
AuthController
public function __construct()
{
$this->accessDenied();
}
public function accessDenied()
{
$url_segment1 = Request::segment(1);
$url_segment2 = Request::segment(2);
$url_segment = $url_segment1 . '/' . $url_segment2;
$user_data = Auth::user()->toArray();
$dadmin = array_keys($user_data['admin']);
//this is sample of array
// $user_data['admin'] => Array
// (
// [admin/roles] => 1
// )
if (!in_array($url_segment, $dadmin)) {
return redirect('/home');
}
}
Aber ich bin immer folgende Fehler
Non-static method Illuminate\Http\Request::segment() should not be called statically, assuming $this from incompatible context
Wenn ich falsch Prozess verwenden, dann bitte mir richtigen Weg vorschlagen, nicht autorisierte Benutzer die Umleitung auf Startseite.
eine Middleware anstelle von Zugriffsfunktion verweigert –
wo in Routing Verwendung Middleware ??? @AchrafKhouadja –
entschuldigen Sie mich? Ich konnte –