2017-11-09 10 views
0

私はLaravelで新しく、私は現在いくつかのチュートリアルに従っているので、いくつかのルートにアクセスすることはできません。これらのチュートリアルでは、私は管理者という名前のいくつかのミドルウェアを作成し、管理ミドルウェアに私はここのようなコードを作る:ミドルウェア

if (Auth::user() && Auth::user()->admin == 1) { 

      Session::flash('success','U do not have access to this menu'); 
      return back(); 

} 

、私のルートに私は次のように設定しています:

Route::get('/users/{id}/makeadmin', '[email protected]')->name('users.makeadmin')->middleware('admin'); 

だけでなく、それ以外の成功を管理者を使用しているときに私はどちらかがブロックされているユーザーのテーブルに私はすでに1に管理者を設定したので、何かが不足しているか、私は間違っている?私は現在、laravel 5.5を使用しています。

+0

あなたは(これはログ長距離での生活が楽になります管理者権限を持っている必要があります何の周りにあなたのMwareをラップする必要があり、ここで – Option

答えて

0

ああ申し訳ありませんが、これは非常にばかげている、私は "を入れて忘れてしまった!それはなぜ私はその管理者が既にルートにアクセスすることはできません。ここで私は何をしているのですか?

if (!Auth::user() && Auth::user()->admin !== 1) { 

      Session::flash('success','U do not have access to this menu'); 
      return back(); 

} 
+0

私の懸念は、そのあなたです。ミドルウェアではなくコントローラーに配置したのですか?私は間違っていますか? – Option

0

あなたのミドルウェアでこれを試してみてください。

public function handle($request, Closure $next) 
{ 
    if (Auth::check() && Auth::user()->admin == 1) 
     return $next($request); 
    Session::flash('success','U do not have access to this menu'); 
    return back(); 
}