代码之家  ›  专栏  ›  技术社区  ›  Somokos

使用或条件的Laravel 8同路由多中间件

  •  0
  • Somokos  · 技术社区  · 4 年前

    你好,我尝试使用下面的代码这样的中间件来验证

    Route::get('/page', [Controller::class, 'index'])->middleware(['mid1','mid2']);
    

    在本例中,它使用AND运算符not,或者我也使用了这样的组

    Route::group(['middleware' => 'mid1'], function () {
       Route::get('/page', [Controller::class, 'index']);
    });
    Route::group(['middleware' => 'mid2'], function () {
       Route::get('/page', [Controller::class, 'index']);
    });
    

    但使用具有相同路线的组,组中的第二条路线是唯一可读的。 需要帮忙吗

    1 回复  |  直到 4 年前
        1
  •  0
  •   Faesal jai wardhan    4 年前

    拉拉维尔没有什么可以做这种事的。

    您可以创建另一个中间件来包含需要应用的两个条件。

    在你身上:

    public function handle($request, Closure $next) {
        if (condition1 || condition2) {
           return $request($next);
        }
        abort('statusCode');
    }