Statt der Laravel Multi-Auth verwende ich meine eigene (primitive) Methode, um Admin-Benutzer haben.Wie auf Admin-Seite mit benutzerdefinierten Admin-Tabelle umgeleitet werden
Ich habe nur eine zusätzliche Tabelle in der Datenbank PAdmin
und in dieser Tabelle habe ich die IDs der Benutzer admin.
Wenn ich mich bei der Anwendung anmelde, möchte ich die Admin-Benutzer auf eine andere Seite statt der home
Seite umleiten.
Aus diesem Grund ging ich zu Http \ Middleware \ RedirectIfAuthenticated und den Code geändert, so von dieser:
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check()) {
return redirect('/home');
}
return $next($request);
}
ich es so weit geändert:
public function handle($request, Closure $next, $guard = null)
{
$user_id = Auth::id();
$isAdmin = PAdmin::where('user_id',$user_id)->get()->isEmpty();//returns 'true' if empty
if (Auth::guard($guard)->check() && $isAdmin) {//IF $isAdmin is TRUE it means that the user is not admin
return redirect('/home');
}elseif (Auth::guard($guard)->check() && !($isAdmin)){//IF $isAdmin is FALSE it means that the user is not admin
return redirect('/admin');
}
return $next($request);
}
Die Idee ist einfach - wenn Es ist ein Datensatz mit der Benutzer-ID in der PAdmin
Tabelle $isAdmin
wird falsch sein und die elseif
wird ausgeführt.
Leider funktioniert das nicht und ich weiß nicht warum.
Vielleicht ist dies nicht der richtige Weg, es überhaupt zu tun.
Kann mir jemand helfen, das richtig zu machen.
P.S. Ich möchte nicht multi auth
verwenden.
Überprüfen Sie zuerst Ihre -> get() Daten. – jjwdesign
Sie sollten das wirklich ändern "Wenn $ isAdmin WAHR ist bedeutet dies, dass der Benutzer nicht Admin ist" –