如何在 Laravel 路由组中使用多个中间件?

问题描述 投票:0回答:1

我正在尝试将新的中间件添加到我在

routes/web.php

中获得的一组路由中
Route::group(['middleware'=>['xFrameOptionsHeader','VerifyHeaders']], function(){
    Route::get('/', 'PagesController@getIndex');
    Route::get('/otherroute', 'PagesController@getOtherRoute'); // etc...
});

当我只有

xFrameOptionsHeader
中间件时,代码可以工作,然后我使用命令

php artisan make:middleware VerifyHeaders

目前看起来只有这样:

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;

class VerifyHeaders
{
    /**
     * Handle an incoming request.
     *
     * @param  \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response)  $next
     */
    public function handle(Request $request, Closure $next): Response
    {
        return $next($request);
    }
}

但是当我导航到

/
时,应用程序失败并显示错误消息:

 Illuminate\Contracts\Container\BindingResolutionException
Target class [VerifyHeaders] does not exist.

另外,我在docs中没有找到通过

Route::group
添加多个中间件的正确方法,那么我在这里缺少什么?还尝试了这个问题的解决方案,但也出现了同样的错误。

php laravel laravel-middleware laravel-11
1个回答
0
投票

好吧,我刚刚发现我错过了什么

由于这个 Laravel 项目是很久以前创建的(我认为是在 Laravel 6 中),定义新中间件的方法是将它们添加到

app/Http/Kernel.php
类中,如旧文档中所述。尽管我按照其网站上的说明更新到 Laravel 11,但错误仍然发生...

© www.soinside.com 2019 - 2024. All rights reserved.