首页 > 解决方案 > 在 Laravel 中使用 IsAdmin 中间件时出现未定义的方法错误

问题描述

//这是我的路线

Route::get('/works', function () {
    $works=Work::all();
    return view('works',compact('works')); })->middleware('IsAdmin');
});

这是我在用户模型中的 IsAdmin 函数

public function roles(){
    return $this->belongsToMany('App\Role','user_role','user_id','role_id');
}

public function IsRole(){
    return $this->roles; 
}

这是我的 IsAdmin 中间件

public function handle($request, Closure $next)
{
   $user=Auth::user();

   if($user->IsRole()->name=='Administrator'){

        return true;

    }
}

为什么它给我未定义的方法错误?

标签: phplaravel

解决方案


您是否将中间件注册app/Kernel.php$routeMiddleware 数组中。应该是这样的

protected $routeMiddleware = ['check.admin' => \App\Http\Middleware\YourClass::class]

推荐阅读