我有一个中间件checkSession
用于检查我的Laravel项目中的会话。但是,在使用php artisan serve
为Laravel项目提供服务时,该项目已成功提供。但是,在使用Web应用程序时,会抛出此错误ReflectionException (-1)
Class checkSession does not exist
我在SO上搜索了其他答案。但它们似乎都不适合我的情况。
我还仔细检查了checkSession类是否存在于具有正确名称空间的正确Middleware目录中。我无法弄清楚错误发生的原因。请帮助。
答案 0 :(得分:0)
您应该错过注册中间件。在定义中间件之后,您应该将其注册到特定路由或一组路由,或者将所有HTTP请求注册到您的应用程序。
如果您没有注册中间件,它将不知道应该在哪条路由上激活中间件。
如果要为应用程序中的所有路由注册中间件,请将checkSession
添加到$middleware
文件中的/app/Http/Kernel.php
属性。
否则,如果要激活某些路由的中间件,请将密钥与中间件相关联,并将其添加到上述文件中$routeMiddleware
属性中的现有中间件。
例如将其附加到$routeMiddleware
变量:'checkSession' => \App\Http\Middleware\checkSession::class,
现在,您可以使用此checkSession
密钥将此中间件与路由定义中的特定路由相关联。
我强烈建议您在实施前阅读文档。 (https://laravel.com/docs/5.6/middleware#registering-middleware)