无法访问某些路由,因为中间件

can't access some route because middleware

我是 Laravel 的新人,目前正在学习一些教程。在那些教程中,我创建了一些名为 Admin 的中间件,在 Admin 中间件中,我编写了如下代码:

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', 'UsersController@admin')->name('users.makeadmin')->middleware('admin');

好吧,对于非管理员来说它是成功的,但是当使用管理员时我被阻止了,尽管在用户 table 中我已经将管理员设置为 1。所以我是遗漏了什么还是我做错了?我目前正在使用 laravel 5.5。

啊抱歉这太蠢了,我忘了放“!”这就是为什么我无法访问该路线,尽管它已经是管理员。所以这就是我所做的。

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

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

}

在你的中间件中试试这个:

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