Php Laravel 5.1身份验证-无法重定向到登录页面

Php Laravel 5.1身份验证-无法重定向到登录页面,php,laravel,authentication,laravel-5.1,Php,Laravel,Authentication,Laravel 5.1,正在尝试阻止来宾用户的路由。当有人点击localhost:8000/AdminPanel时,它将检查用户是否以管理员身份登录。如果是admin,那么它工作正常;如果是代理,那么它会重定向到登录页面;但是如果我作为来宾用户点击链接,它不会将我重定向到登录页面,而是显示一些错误: routes.php第53行中的ErrorException: 正在尝试获取非对象的属性 以下是我的routes.php文件: Route::get('/AdminPanel', function () { if

正在尝试阻止来宾用户的路由。当有人点击
localhost:8000/AdminPanel
时,它将检查用户是否以管理员身份登录。如果是admin,那么它工作正常;如果是代理,那么它会重定向到登录页面;但是如果我作为来宾用户点击链接,它不会将我重定向到登录页面,而是显示一些错误:

routes.php第53行中的ErrorException: 正在尝试获取非对象的属性

以下是我的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');
    }
});

这是因为如果用户未登录,Auth::user()将为null。因此,它抛出一个错误,即它试图获取非对象的属性。您应该首先检查是否设置了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');
}
为什么不试试这个? 路由::get('/AdminPanel',函数(){

所以用户类型ID2和来宾用户将重定向到登录页面

        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');
        }

    })