2015-12-05 6 views
1

Попытка заблокировать маршрут для гостевых пользователей. Когда кто-то ударяет localhost:8000/AdminPanel, он проверяет, зарегистрирован ли пользователь в качестве администратора или нет. Если администратор тогда работает нормально, если агент затем перенаправляется на страницу входа в систему, но если я нахожу ссылку в качестве гостевого пользователя, он не перенаправляет меня на страницу входа, вместо этого появляется некоторая ошибка:Аутентификация Laravel 5.1 - не может перенаправляться на страницу входа

ErrorException in routes.php line 53: Trying to get property of non-object.

Вот мой routes.php файл:

Route::get('/AdminPanel', function() { 
    if (Auth::user()->user_type_id == 1) { // line 53 
     return view('frontend.AdminPanel');  
    } 

    if (Auth::user()->user_type_id == 2) { 
     return view('auth/login'); 
    } 

    if (Auth::guest()) { 
     return view('auth/login'); 
    } 
}); 

ответ

2

Это происходит потому, что если пользователь не вошел в систему Auth :: пользователя() равно нулю. Поэтому он выдает ошибку, чтобы попытаться получить свойство не-объекта. Вы должны сначала проверить, установлен ли Auth, например:

if(Auth::check()){ 
    if(Auth::user()->user_type_id==1){ //line 53 
      return view('frontend.AdminPanel');  
    } 
    else if(Auth::user()->user_type_id==2){ 
      return view('auth/login'); 
    } 
} 
else{ 
    return view('auth/login'); 
} 
0

Почему бы не попробовать? Route :: получить ('/ админпанель, функция() {

 if(Auth::user()->user_type_id==1){ //line 53 
      return view('frontend.AdminPanel');  
     } 
     elseif(Auth::user()->user_type_id==2){ 
      return view('auth/login'); 
     }else{ 
      return view('auth/login'); 
     } 

    }) 

так тип идентификатор пользователя 2 и гостевой пользователь будет перенаправлять на страницу входа в систему?