2017-02-24 116 views
1

我有一個表主機,並且希望在用戶爲admin(DB is_admin布爾型)時重定向到不同的頁面。 我用下面的驗證方法:Laravel 5.3身份驗證依賴用戶

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); 
} 

我的主機類:

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

}

誰能幫助我?

回答

0

嘗試做這樣的 -

中間件

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

return redirect('/'); 

這是因爲布爾返回1或0,這意味着真或假。因此,沒有必要檢查wheather它是真實的== true

不要忘了在數據庫中is_admin添加一列,因爲你是在告訴從數據庫中獲取is_admin

0

變化

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

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

你定義的函數,而不是一個性質

+0

謝謝,但不幸的是每次都會重定向到/ home,即使用戶不是管理員也很難。如果取消註釋代碼,它也能工作=>我真的不知道爲什麼?! Laravel 5.3檢查用戶信用額還有另一種方法嗎? – AppleForTheKing

+0

它只會重定向到/ home,如果'is_admin == 1',檢查您的數據庫 – ntzm

+0

是的,我知道但它也重定向,如果我評論整個RedirectIfAuthenticated方法,任何想法? – AppleForTheKing