更新后的 Laravel 11 给我带来了重大问题。没有 kernel.php 文件,并且也缺少一些服务提供程序文件。我必须手动添加内核,每次我在 bootstrap/app.php 文件中进行调整时,artisan 文件都会抛出错误。我什至无法运行 php artisan 命令而不遇到错误。这是 bootstrap 目录中 app.php 文件中的代码。
$app = Application::configure(basePath: dirname(__DIR__))
->withRouting(
web: __DIR__.'/../routes/web.php',
api: __DIR__.'/../routes/api.php',
commands: __DIR__.'/../routes/console.php',
health: '/up',
)
->withMiddleware(function ($middleware) {
$middleware->add(\App\Http\Middleware\CheckUserType::class);
$middleware->add(\App\Http\Middleware\StudentMiddleware::class);
$middleware->add(\App\Http\Middleware\TeacherMiddleware::class);
$middleware->add(\App\Http\Middleware\AdminMiddleware::class);
})
->withExceptions(function (Exceptions $exceptions) {
//
})
->create();
$app->register(AppServiceProvider::class);
$app->singleton(
Illuminate\Contracts\Http\Kernel::class,
App\Http\Kernel::class
);
**这是错误:**
`PHP 致命错误:未捕获错误:在 C:\Classes rdyear nd sem\CCS 106\Laravel\FINAL PROJECT\grand_line_university rtisan:13 中调用 int 上的成员函数 handleCommand() 堆栈跟踪: #0 {主要} 扔在 C:\Classes rdyear nd sem\CCS 106\Laravel\FINAL PROJECT\grand_line_university rtisan 第 13 行
n:13 堆栈跟踪: #0 {主要} 扔在 C:\Classes rdyear nd sem\CCS 106\Laravel\FINAL PROJECT\grand_line_university rtisan 第 13 行 PS C:\Classes rdyear nd sem\CCS 106\Laravel\FINAL PROJECT\grand_line_university> php artisanserve 19号线
致命错误:无法在线 C:\Classes rdyear nd sem\CCS 106\Laravel\FINAL PROJECT\grand_line_university ootstrap pp.php 中对字符串类型的值使用“::class” 19 PS C:\Classes rdyear nd sem\CCS 106\Laravel\FINAL PROJECT\grand_line_university> php artisan PHP 致命错误:未捕获错误:在 C:\Classes rdyear nd sem\CCS 106\Laravel\FINAL PROJECT\grand_line_university rtisan:13 中调用 int 上的成员函数 handleCommand() 堆栈跟踪: #0 {主要} 扔在 C:\Classes rdyear nd sem\CCS 106\Laravel\FINAL PROJECT\grand_line_university rtisan 第 13 行
n:13 堆栈跟踪: #0 {主要} 扔在 C:\Classes rdyear nd sem\CCS 106\Laravel\FINAL PROJECT\grand_line_university rtisan 第 13 行 PS C:\Classes rdyear nd sem\CCS 106\Laravel\FINAL PROJECT\grand_line_university> php artisan PHP 致命错误:未捕获错误:在 C:\Classes rdyear nd sem\CCS 106\Laravel\FINAL PROJECT\grand_line_university rtisan:13 中调用 int 上的成员函数 handleCommand() 堆栈跟踪: #0 {主要} 扔在 C:\Classes rdyear nd sem\CCS 106\Laravel\FINAL PROJECT\grand_line_university rtisan 第 13 行 `
我是 Laravel 的新手,这真的很难。
我尝试手动添加内核,并且必须调整 bootstrap->app.php。但是当我修改它,特别是中间件部分时,artisan 文件也被修改了,也许是因为即使我撤消了更改,artisan 命令仍然无法运行,因为它说它在第 13 行 artisan 文件中有错误。
我刚刚发现问题所在,我忘了归还$app。
如果将返回 $app 存储在 $app 变量中,请确保在代码末尾包含它。这将确保配置好的 Laravel 应用程序被返回并正确使用。
$app = Application::configure(basePath: dirname(__DIR__))
->withRouting(
web: __DIR__.'/../routes/web.php',
commands: __DIR__.'/../routes/console.php',
health: '/up',
)
->withMiddleware(function ($middleware) {
Route::middleware([CheckUserType::class, StudentMiddleware::class, TeacherMiddleware::class, AdminMiddleware::class]);
})
->withExceptions(function (Exceptions $exceptions) {
//
})
->create();
$app->register(AppServiceProvider::class);
$app->singleton(
Illuminate\Contracts\Http\Kernel::class,
App\Http\Kernel::class
);
return $app;