我正在开发一个旧的 Laravel 项目,在 api.php 路由文件中,有如下代码。
use App\Http\Controllers\Api;
use App\Http\Controllers\VendorApi;
Route::get('/some-route', [Api\SomeController::class, 'index']);
Route::get('/some-vendor-route', [VendorApi\SomeController::class, 'index']);
控制器的目录是:
app/
├─ Http/
│ ├─ Controllers/
│ │ ├─ Api/
│ │ │ ├─ SomeController.php
│ │ ├─ VendorApi/
│ │ │ ├─ SomeController.php
当我运行
php artisan route:list
时,即使代码仍在运行,也会抛出各种错误。像这样的错误。
目标类 [App\Http\Controllers\Api\App\Http\Controllers\Api\SomeController] 不存在。
目标类 [App\Http\Controllers\Api\App\Http\Controllers\VendorApi\SomeController] 不存在。
我尝试查找使用
use
语句时指定目录是否是有效的 PHP,但我找不到任何相关信息。 ChatGPT 说它无效。
有谁知道在 PHP 中使用
use
语句时指定目录是否有效?
听起来您已经在加载
api.php
路由文件的路由组上定义了一个命名空间。转到您的 RouteServiceProvider
并查看加载该文件的组是否已定义命名空间。
否则,它可能是在
RouteServiceProvider
本身上定义的命名空间。