php - 在 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;
}
}
为什么它给我未定义的方法错误?
解决方案
您是否将中间件注册app/Kernel.php
到$routeMiddleware
数组中。应该是这样的
protected $routeMiddleware = ['check.admin' => \App\Http\Middleware\YourClass::class]
推荐阅读
- pdf - 脚本 pdf atom 的 pdf 生成
- flutter - 将文本与坐标对齐(不在 y 轴上移动)
- python - 基于 Firestore 更改触发云函数 (Python)
- python - 将历史盘中数据提取到具有每周范围的多个调用中
- intellij-idea - 如何在openjdk12中使用javafx构建jar
- apache-kafka - 带有位于远程计算机上的 CSV 文件的 Kafka 文件流式传输?
- android - Firebase Firestore 没有 OR 或差异逻辑运算符或 whereNotEqual
- google-bigquery - 如何在 BigQuery 中将 DATE 和 TIMESTAMP 字符串类型转换为 DATE 类型
- python - 声明 `class A` 和 `class A()` 有什么区别?
- regex - 列表理解中的 Python 3.5.2 正则表达式返回所有条目 - 与其他示例不一致