Laravel9报Target class [Uploadcontroller]不存在如何解决
Laravel 9 报错
Target class [Uploadcontroller] does not exist 解决方案 这个报错是类自动加载阶段找不到对应控制器类导致的,按以下步骤逐一排查即可解决:
1. 修复类名与文件名的大小写匹配问题
Laravel 遵循 PSR-4 自动加载规范,控制器的文件名必须和文件内定义的类名完全一致(大小写严格匹配)。
你当前代码里的类名是Uploadcontroller,不符合Laravel默认的大驼峰命名规范,大概率是文件名和类名大小写不匹配:
- 把控制器文件名重命名为
UploadController.php(注意Controller的首字母C大写),存储路径为app/Http/Controllers/UploadController.php - 把控制器文件内的类名同步修改为
UploadController,修正后的代码:
namespace App\Http\Controllers; use Illuminate\Http\Request; class UploadController extends Controller { public function upload(Request $request){ dd($request->file('image')); } }
- 同步修改路由文件
routes/web.php里的类引用:
use App\Http\Controllers\UploadController; Route::post('/upload', [UploadController::class, 'upload']);
2. 清除旧路由缓存
如果本地之前执行过路由缓存命令,旧缓存会导致修改后的代码不生效,执行以下命令清除路由缓存:
php artisan route:clear
开发环境不需要生成路由缓存,等到项目上线部署时再执行php artisan route:cache生成优化缓存即可。
3. 更新Composer自动加载映射
如果以上两步操作完还是报错,执行以下命令重新生成Composer的类自动加载映射:
composer dump-autoload
注意:Laravel 9 已经默认在路由文件中支持完整类名引用,不需要额外在
RouteServiceProvider中配置控制器命名空间属性,只要类名、文件名、引用路径三者完全匹配,就可以正常加载控制器。
内容的提问来源于stack exchange,提问作者bhabishya chaudhary
相关产品推荐
相关产品推荐

