2015-05-08 72 views
1

我想顯示404錯誤頁面,如果用戶嘗試訪問德管理頁面,如果他沒有登錄或者他沒有'管理'類型。如果用戶已登錄,則此工作正常,如果不是用戶訪問管理面板的話。如果我刪除if(Auth::check())該腳本顯示Trying to get property of non-object錯誤。Laravel 5中間件身份驗證檢查不起作用

class AdminMiddleware { 
    public function handle($request, Closure $next) 
    { 
     if(Auth::check()){ 
      if ($request->user()->type != 'Admin'){ 
       return abort(404); 
      } 
     } 

     return $next($request); 
    } 

} 

回答

4

試試這個

class AdminMiddleware { 
    public function handle($request, Closure $next) 
    { 
     if(Auth::check()){ 
      if ($request->user()->type != 'Admin'){ 
       return abort(404); 
      } 
     }else{ 
      return abort(404); 
     } 
     return $next($request); 
    } 
} 

應該檢查,如果用戶在如果是這樣記錄的檢查,如果住戶開支統計調查和管理,如果不能在節目記錄了他404

或較短的版本HES

class AdminMiddleware { 
    public function handle($request, Closure $next) 
    { 
     if(Auth::check() && $request->user()->type == 'Admin'){ 
      return $next($request); 
     } 
     return abort(404); 
    } 
} 
+0

它的工作原理,非常感謝!我忘了將其他內容放在Auth :: check()中。 – Roberto