带参数的 Laravel 中间件

问题描述

我写middleare来决定权限。但给出错误

路线页面

Route::middleware([Permission::class])->group(function($id){
});

中间件

 public function handle(Request $request,Closure $next,$id)
   {
         $id = $request->id; //$id is returning null                       
    
    }

给出这个错误 函数 App\Http\Middleware\Permission::handle() 的参数太少,2 传入 /home/saide/Desktop/saide-backoffice/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.PHP 在第 167 行并且正好是 3 个预期

解决方法

我认为当你调用中间件时你使用了方括号,你使用了一个数组来向中间件提交参数,使用下面的代码

Route::middleware([Permission::class])->group(function($id){
});

要通过中间件提交多个参数,请使用以下代码:

Route::get('/',function () {
    //
})->middleware(['first','second']);

为了传递单个中间件,请使用:

Route::get('/profile',function () {
    //
})->middleware('auth');

信息来源:https://laravel.com/docs/8.x/middleware

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...