带参数的 Laravel 中间件

时间:2021-03-10 19:13:27

标签: laravel-8

我写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 个预期

1 个答案:

答案 0 :(得分:0)

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

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

相关问题