2017-02-24 5 views
1

Ich habe eine Tabelle Hosts und möchte auf eine andere Seite umleiten, wenn der Benutzer admin ist (DB is_admin boolean). ich folgende Authentifizierungsmethode verwenden:Laravel 5.3 Authentifizierung in Abhängigkeit von Benutzer

public function handle($request, Closure $next, $guard = null) 
{ 
    if (Auth::guard($guard)->check()) 
    { 
     if(Auth::user()->isAdmin == 1) { 
      return redirect('/home'); 
     } 
     else 
     { 
      return redirect('/api'); 
     } 
    } 

    return $next($request); 
} 

Meine Gastgeber Klasse:

public function isAdmin() 
{ 
    return $this->is_admin; 
} 

}

Kann mir jemand helfen?

Antwort

0

versuchen, wie dies zu tun -

Middleware

if (Auth::check() && Auth::user()->isAdmin()) { 
    return $next($request); 
} 

return redirect('/'); 

Es ist, weil boolean Rückkehr 1 oder 0, die wahr oder falsch bedeutet. Also keine Notwendigkeit, es zu überprüfen wheather es wahr ist, von == true

Vergessen Sie nicht, eine Spalte in der Datenbank mit is_admin hinzufügen, weil Sie sagen is_admin aus der Datenbank erhalten

0

ändern

if(Auth::user()->isAdmin == 1) { 

zu

if(Auth::user()->isAdmin() == 1) { 

Sie definiert eine Funktion, nicht eine Eigenschaft

+0

Danke, aber es leitet leider immer wieder nach/home um, auch wenn der User kein Admin ist. Und wenn der Code auskommentiert, funktioniert es auch => Ich weiß wirklich nicht warum ?! Gibt es eine andere Methode, bei der Laravel 5.3 die Benutzer-Credits prüft? – AppleForTheKing

+0

Es wird nur nach/home umgeleitet, wenn 'is_admin == 1 ', überprüfen Sie Ihre Datenbank – ntzm

+0

Ja, ich weiß, aber es leitet auch um, wenn ich die gesamte RedirectIfAuthenticated-Methode, irgendwelche Ideen kommentieren? – AppleForTheKing

Verwandte Themen