[英]Laravel 5.5 - ReflectionException (-1) Class does not exist
[英]ReflectionException - Middleware class does not exist Laravel 5.5
我知道我不是第一个遇到这种问题的人。 我已经阅读了有关Stackoverflow和其他来源的所有现有信息,但它无法解决我的问题,我总是会得到一个ReflectionException
Class App\\Http\\Middleware\\xxx does not exist
。
<?php
namespace App\Http\Middleware\xxx;
use Closure;
class xxx
{
public function handle($request, Closure $next)
{
return $next($request);
}
}
不开玩笑,这真的是我的班级。 我已将其重命名为xxx
以避免拼写错误。
我的所有路线都将通过web
和admin
中间件:
Route::middleware(['web', 'admin'])->group(function() {
这是我的/app/Http/Kernel.php
:
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
\App\Http\Middleware\xxx::class,
],
xxx.php
,其位置为App\\Http\\Middleware\\
。 我也尝试修改我的composer.json:
"autoload": {
"classmap": [
"database/seeds",
"database/factories",
"App/Http/Middleware/xxx.php"
],
导致以下警告:
Warning: Ambiguous class resolution, "App\Http\Middleware\xxx\xxx" was found in both "$baseDir . '/app/Http/Middleware/xxx.php" and "/code/App/Http/Middleware/xxx.php", the first will be used.
首先,将名称空间更改为:
namespace App\Http\Middleware;
然后从composer.json
删除"App/Http/Middleware/xxx.php"
并运行composer du
如果您使用的是5.2.27及更高版本,还需要从路径文件中删除Web中间件 :
Route::middleware(['admin'])->group(function() {
将名称空间更改为 -
namespace App\Http\Middleware;
您可能在bootstrap/cache
目录中有缓存的文件。 再次删除那些和作曲家dumpautoload。
如果这也失败了,删除整个供应商目录并删除composer.lock
,然后运行composer install
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.