Laravel 8 JetStream BindingResolutionException 目标 class [App\Http\Middleware\HandleInertiaRequests] 不存在

Laravel 8 JetStream BindingResolutionException Target class [App\Http\Middleware\HandleInertiaRequests] does not exist

这些使用 jetStream InertiaJs 设置了一个新的 laravel8 项目,但是当我启动应用程序时出现以下错误:

显然这是一个路由错误,博客显示了编辑 RouteServiceProvider.php 文件并定义以下变量的解决方案:

protected $namespace = 'App\Http\Controllers';
$this->routes(function () {
            Route::prefix('api')
                ->middleware('api')
                ->namespace($this->namespace)
                ->group(base_path('routes/api.php'));

            Route::middleware('web')
                ->namespace($this->namespace)
                ->group(base_path('routes/web.php'));
        });

网页文件路径如下:

Route::get('/', function () {
    return Inertia::render('Welcome', [
        'canLogin' => Route::has('login'),
        'canRegister' => Route::has('register'),
        'laravelVersion' => Application::VERSION,
        'phpVersion' => PHP_VERSION,
    ]);
});

Route::middleware(['auth:sanctum', 'verified'])->get('/dashboard', function () {
    return Inertia::render('Dashboard');
})->name('dashboard');

但错误仍然存​​在,请有人告诉我解决方案,或者我应该查看以找到解决方案

您可能需要在 PHP 文件的顶部 use Inertia\Inertia; 使用它。

根据错误,您可能漏掉了 App 前的反斜杠。 将其放入您的 web.php 文件中: \App\Http\Middleware\HandleInertiaRequests::class

按照此处的说明进行操作: https://inertiajs.com/server-side-setup

composer require inertiajs/inertia-laravel
php artisan inertia:middleware

然后应该找到 class。注意到 class 无法在 IDE 中解析,因此假设它不是开箱即用的默认安装。