Php 如何使用自定义管理表重定向到管理页面

Php 如何使用自定义管理表重定向到管理页面,php,laravel,eloquent,laravel-5.4,Php,Laravel,Eloquent,Laravel 5.4,我使用自己的(原始)方法来拥有管理员用户,而不是laravel多重身份验证 我只是在数据库中有一个名为PAdmin的额外表,在这个表中我有管理员用户的id 当我登录到应用程序时,我想将管理员用户重定向到另一个页面,而不是主页页面 出于这个原因,我转到Http\Middleware\redirectifauthentication并更改了代码,因此: public function handle($request, Closure $next, $guard = null) { if (A

我使用自己的(原始)方法来拥有管理员用户,而不是laravel多重身份验证

我只是在数据库中有一个名为
PAdmin
的额外表,在这个表中我有管理员用户的id

当我登录到应用程序时,我想将管理员用户重定向到另一个页面,而不是
主页
页面

出于这个原因,我转到Http\Middleware\redirectifauthentication并更改了代码,因此:

 public function handle($request, Closure $next, $guard = null)
{

  if (Auth::guard($guard)->check()) {
  return redirect('/home');

 }

 return $next($request);


}
我把它改成这样:

 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);
}
想法很简单-如果在
PAdmin
表中有一条带有用户ID的记录,
$isAdmin
将为false,并且将执行
elseif

不幸的是,这不起作用,我不知道为什么

也许这根本不是正确的方法

有人能帮我把这个弄对吗

另外,我不想使用
multi-auth

 public function handle($request, Closure $next, $guard = null)
{

  if (Auth::guard($guard)->check()) {
     if(PAdmin::where('user_id',Auth::id())->first() != null) return redirect('/admin');
     return redirect('/home');

 }

 return $next($request);


}

更清晰更简单。

首先检查->get()数据。您应该真正更改此选项“如果$isAdmin为TRUE,则表示用户不是管理员”