Laravel报错:Target class [HomeController] does not exist 求助
解决Laravel中"Target class [HomeController] does not exist"错误
修正控制器文件名
Laravel严格遵循大驼峰命名规范,控制器文件名必须和类名完全一致。你当前的文件名是homeController.php,需要改为HomeController.php(首字母大写)。适配Laravel版本的路由写法
Laravel 8及以后版本默认取消了路由自动添加控制器命名空间的逻辑,可通过两种方式修正:- 路由中指定完整命名空间:
Route::get('/home','App\Http\Controllers\HomeController@home')->name('home'); Route::get('/about','App\Http\Controllers\HomeController@about')->name('about'); - 在路由服务提供者中恢复自动命名空间:
打开app/Providers/RouteServiceProvider.php,在boot方法的路由组里添加命名空间配置:protected function boot() { $this->configureRateLimiting(); $this->routes(function () { Route::middleware('web') ->namespace('App\Http\Controllers') ->group(base_path('routes/web.php')); // 其他路由组配置... }); }
- 路由中指定完整命名空间:
确认文件位置
确保HomeController.php文件确实放在app/Http/Controllers目录下,没有放错路径。清除缓存
执行以下命令清除路由和类缓存,避免缓存导致的类加载异常:php artisan route:clear php artisan cache:clear php artisan config:clear
内容的提问来源于stack exchange,提问作者ilyas zagaouch
相关产品推荐
相关产品推荐

