2017-02-24 4 views
1

私はテーブルホストを持っており、ユーザーがadmin(DB is_admin boolean)のときは別のページにリダイレクトしたいと考えています。 私は、次の認証方法を使用します。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('/'); 

boolean型の戻り1または0が真または偽を意味しているからです。だから、それは本当ですwheather == true

はいけないことで、それをチェックする必要がデータベースへ

0

変更

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

からis_adminを取得するように指示されているので、is_adminでデータベース内の列を追加することを忘れません

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

あなたは機能ではなく、プロパティ

を定義し
+0

ありがとうございますが、残念ながら毎回/ homeにリダイレクトされます。ユーザーは管理者ではありません。そしてコードのコメントを外しても、それは=>本当にわからないのですか? Laravel 5.3がユーザーのクレジットカードをチェックする別の方法がありますか? – AppleForTheKing

+0

'is_admin == 1'の場合は/ homeにリダイレクトされますので、データベースを確認してください – ntzm

+0

ええ、私は知っていますが、RedirectIfAuthenticatedメソッド全体をコメントすればリダイレクトされます。 – AppleForTheKing

関連する問題