2017-11-09 6 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

입니다 . 미들웨어가 아닌 컨트롤러에 넣었습니까? 내가 틀릴 수도 있습니까? – Option

답변

0

아 죄송합니다. 이것은 매우 어리 석다. 나는 "!"을 넣는 것을 잊어 버렸다. 그리고 그 관리자가 이미 루트에 액세스 할 수없는 이유. 그래서 여기에 내가하는 일이 있습니다.

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

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

} 
+0

여기 내 관심사는 당신이 (이 로그의 인생을 더 쉽게 만들 관리자 권한이 필요 아무것도 주위에 당신의 Mware를 포장한다 – 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(); 
} 
이 운반