Laravel 10路由类错误排查:存在的CitiesController无法被找到
Laravel控制器不存在错误排查(Target class [App\Http\Controllers\Cities\CitiesController] does not exist)
在Laravel项目中,从仪表盘通过route('cities')跳转至城市页面时,出现错误提示Target class [App\Http\Controllers\Cities\CitiesController] does not exist,但控制器文件实际位于App\Http\Controllers\Cities\目录下,且项目中自定义的登录注册功能正常运行。
以下是针对性的排查解决步骤:
检查文件名与目录大小写
类Unix系统(Linux/Mac)对文件名大小写敏感,需确保:- 控制器文件名为
CitiesController.php(首字母大写,后缀正确) - 控制器所在目录名为
Cities(首字母大写,位于App\Http\Controllers目录下)
- 控制器文件名为
清除Laravel缓存
旧缓存可能导致路径识别异常,运行以下命令清除各类缓存:php artisan route:clear php artisan cache:clear php artisan config:clear php artisan optimize:clear更新Composer自动加载映射
执行命令更新类自动加载规则,确保Laravel能正确识别控制器位置:composer dump-autoload若问题仍存在,可检查项目根目录
composer.json的autoload.psr-4配置,确认包含"App\\": "app/"。验证路由定义
确认web.php中的路由定义正确,可尝试两种写法:
写法1(Laravel 8+推荐):use App\Http\Controllers\Cities\CitiesController; Route::get('/cities', [CitiesController::class, 'cities'])->name('cities');写法2(字符串路径形式):
Route::get('/cities', 'App\Http\Controllers\Cities\CitiesController@cities')->name('cities');
内容的提问来源于stack exchange,提问作者R1ce D1es
相关产品推荐
相关产品推荐

