You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 9路由前缀报错:Target class [Admin\DashboardController]不存在

Laravel 9 路由前缀配置报错:Target class [Admin\DashboardController] does not exist. 解决方法

问题原因

Laravel 9 已移除路由中的namespace()方法,该写法在Laravel 8+已被弃用,直接使用会导致框架无法正确解析控制器的完整命名空间。

解决方案

方案一:使用完整类名指定控制器

修改routes/web.php中的路由代码,直接传入控制器的完整类名:

Route::prefix('admin')->group(function(){
    Route::get('/', [\App\Http\Controllers\Admin\DashboardController::class, 'index'])->name('dashboard');
});

方案二:配置默认命名空间(适配习惯短类名的场景)

  1. 打开app/Providers/RouteServiceProvider.php,找到$namespace属性,取消注释并设置为App\Http\Controllers:
protected $namespace = 'App\Http\Controllers';
  1. 确保mapWebRoutes()方法中路由组使用了该命名空间:
$this->routes(function () {
    Route::middleware('web')
        ->namespace($this->namespace)
        ->group(base_path('routes/web.php'));
});
  1. 之后即可继续使用短类名写法:
Route::prefix('admin')->group(function(){
    Route::get('/','Admin\DashboardController@index')->name('dashboard');
});

额外验证点

  • 确认控制器文件路径为App/Http/Controllers/Admin/DashboardController.php,文件名与类名大小写一致(Linux系统严格区分大小写)
  • 控制器内的命名空间namespace App\Http\Controllers\Admin;书写正确

内容的提问来源于stack exchange,提问作者Rizal Maulana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 02:30:48