目标类 [Admin\UserController] 不存在

分享于2022年07月17日 laravel laravel-8 php 问答
【问题标题】:目标类 [Admin\UserController] 不存在(Target class [Admin\UserController] does not exist)
【发布时间】:2022-06-23 17:14:46
【问题描述】:

我已将我的项目路由分为包含客户端路由的 home.php 和包含服务器端路由的 admin.php

这是我的 RouteServiceProvider.php

public function boot()
    {
        $this->configureRateLimiting();

        $this->routes(function () {
            Route::prefix('api')
                ->middleware('api')
                ->namespace($this->namespace)
                ->group(base_path('routes/api.php'));

            Route::middleware('web')
                ->namespace($this->namespace)
                ->group(base_path('routes/web/home.php'));

            Route::middleware(['web', 'auth.admin'])
                ->namespace($this->namespace . '\Admin')
                ->prefix('admin')
                ->group(base_path('routes/web/admin.php'));
        });
    }

如您所见,我已指定 ->namespace($this->namespace . '\Admin') ,因为此目录中放置了管理控制器:

App\Http\Controllers\Admin\...

然后在 admin.php ,我添加了这条路线:

Route::resource('users', UserController::class);

但我收到此错误:

Target class [Admin\UserController] does not exist.

那么这里出了什么问题?如何解决此问题并从管理员正确调用控制器?

  • 你能在此处添加完整的 UserController 文件吗……也请检查该 userController 的命名空间……
  • @SaravanaSai 它有这个命名空间: namespace App\Http\Controllers\Admin;
  • 你是否在你的路由文件中正确导入了检查我...我认为它应该是这样的 'Route::resource('users',App\Http\Controllers\Admin\ UserController: :班级); ' 试试这个

【解决方案1】:

您可能需要添加 use 语句来指出您的控制器在路由文件中的位置。

例如:

use App\Http\Controllers\Admin\UserController;