我正在尝试将新的中间件添加到我在
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
添加多个中间件的正确方法,那么我在这里缺少什么?还尝试了这个问题的解决方案,但也出现了同样的错误。
好吧,我刚刚发现我错过了什么
由于这个 Laravel 项目是很久以前创建的(我认为是在 Laravel 6 中),定义新中间件的方法是将它们添加到
app/Http/Kernel.php
类中,如旧文档中所述。尽管我按照其网站上的说明更新到 Laravel 11,但错误仍然发生...