Laravel中KategoriController报「目标类不存在」的问题排查
Laravel报错:Target class [KategoriController] does not exist 排查方案
问题场景
其他控制器(UserController、PinjamController、BukuController等)正常运行,仅KategoriController触发Target class [KategoriController] does not exist错误,两种跳转链接(直接URL和路由名称)均触发相同问题,路由配置为:
Route::resource('/admin/kategori',KategoriController::class)->middleware('auth:admin');
排查原因及解决方法
命名空间不匹配
检查KategoriController.php顶部的命名空间,确保和其他正常控制器一致。比如其他控制器用namespace App\Http\Controllers;,则该控制器也需保持相同命名空间;若控制器放在子目录(如Admin),命名空间应为namespace App\Http\Controllers\Admin;,同时路由文件需引入对应类:use App\Http\Controllers\Admin\KategoriController;或在路由中使用完整类名:
Route::resource('/admin/kategori', \App\Http\Controllers\Admin\KategoriController::class)->middleware('auth:admin');文件名/类名拼写或大小写错误
类Unix系统(Linux、MacOS)区分文件名大小写,需确保控制器文件名是KategoriController.php(首字母大写,驼峰命名),且类名与文件名完全一致:class KategoriController extends Controller { // ... }自动加载缓存未更新
新创建的控制器可能未被Laravel自动加载识别,执行以下命令清除缓存并重新生成自动加载文件:composer dump-autoload php artisan optimize:clear路由缓存问题
若之前生成过路由缓存,新添加的路由可能未生效,执行命令清除路由缓存:php artisan route:clear
内容的提问来源于stack exchange,提问作者Kholid Syaifullah
相关产品推荐
相关产品推荐

