2016-07-07 2 views
0

내 route.php에서 Auth :: user()에 액세스하는 데 문제가 있습니다. 지금까지 여기에 내가있어 무엇 : -> 역할route.php의 Auth :: user() 액세스

+1

실제로는 Auth :: user()가 실제로 유효한 객체를 반환하는지 확인해야합니다 (즉 사용자가 실제로 인증 됨). – Stuart

답변

2

Route::group(['middleware' => 'auth'], function() { 
    if(Auth::user()->role == "manager"){ 
     Route::get('/','[email protected]'); 
    } 
    else if(Auth::user()->role == "rater"){ 
     Route::get('/','[email protected]'); 
    } 
}); 

그것은 나를이 오류를 준다 나는 인증 : 사용자()를 사용하려고 할 때마다 "비 개체의 속성을 얻으려고 노력" 에 코드를 변경 : 현재 사용자가 아직 로그인하지 않은 경우, 그 필요가 없습니다 때문에

Route::group(['middleware' => 'auth'], function() { 
      if (Auth::check()) { 
       if(Auth::user()->role == "manager"){ 
        Route::get('/','[email protected]'); 
       } 
       else if(Auth::user()->role == "rater"){ 
        Route::get('/','[email protected]'); 
       } 
      } 
     }); 

role 그래서 Auth::user()null 따라서 role 속성에 액세스하는 것은 불가능하다를 반환합니다. if (Auth::check())을 사용하여 사용자가 로그인했는지 먼저 확인해야합니다.

P. routes 파일에서 인증을 확인하는 것은 나쁜 습관이므로 controller 내부에서 처리해야합니다. 희망이 도움이됩니다.

+1

Auth :: check를 추가하면 비어있는 부분이 반환됩니다. –

+0

@SydneyLoteria Are You 로그인? 왜냐하면 당신이 로그인하지 않았다면'empty '를 반환해야하기 때문입니다! –

+0

이것은 나쁜 습관입니다 !! 라우트 파일을 사용하여 액세스하지 않으려면 컨트롤러에서이 작업을 수행해야합니다. – Sangar82

관련 문제