【问题标题】:Laravel middleware with parameter带参数的 Laravel 中间件
【发布时间】:2021-03-10 19:13:27
【问题描述】:

我写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() 的参数太少,在第 167 行的 /home/saide/Desktop/saide-backoffice/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php 中传递了 2 个正好是 3 个预期

【问题讨论】:

    标签: laravel-8


    【解决方案1】:

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

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-05
      • 2021-11-14
      • 2020-08-31
      • 2019-06-16
      • 2017-07-10
      • 1970-01-01
      相关资源
      最近更新 更多