Laravel 8 子文件夹内的控制器问题
Laravel 8 issue with controller inside subfolder
我有 laravel 8 个项目,但我遇到了子文件夹中控制器的问题。
我的 DashboardController 位于 /app/Http/Controllers/Dashboard。在我的 web.php 我有:
use App\Http\Controllers\Dashboard\DashboardController;
Route::get('dashboard', [DashboardController::class, 'dashboardView']);
DashboardController 具有此命名空间:
namespace App\Http\Controllers\Dashboard;
我试过取消注释 RouteServiceProvider.php 中的 $namespace 变量。我还添加了:
->namespace($this->namespace);
在 boot() 方法中。但没有运气。我收到此错误:
Class 'App\Http\Controllers\Dashboard\Controller' not found"
当我在 laravel 控制器文件夹中有 DashboardController 时,一切正常。同样有趣的是 LoginController。它位于 Auth 子文件夹 (Controllers/Auth) 中,此控制器在子文件夹中工作。
我想将控制器移动到子文件夹中的原因是更好地组织文件。
这里有人能帮我解决这个问题吗?非常感谢您。
在您引用的 class 文件中 Controller
;最有可能 extends Controller
在 class 定义中。在您声明的命名空间 App\Http\Controllers\Dashboard
中没有名为 Controller
的 class。您很可能会尝试引用 App\Http\Controllers\Controller
,这意味着您将需要一个 use
声明或通过其 FQCN、完全限定的 Class 名称引用它。
我有 laravel 8 个项目,但我遇到了子文件夹中控制器的问题。
我的 DashboardController 位于 /app/Http/Controllers/Dashboard。在我的 web.php 我有:
use App\Http\Controllers\Dashboard\DashboardController;
Route::get('dashboard', [DashboardController::class, 'dashboardView']);
DashboardController 具有此命名空间:
namespace App\Http\Controllers\Dashboard;
我试过取消注释 RouteServiceProvider.php 中的 $namespace 变量。我还添加了:
->namespace($this->namespace);
在 boot() 方法中。但没有运气。我收到此错误:
Class 'App\Http\Controllers\Dashboard\Controller' not found"
当我在 laravel 控制器文件夹中有 DashboardController 时,一切正常。同样有趣的是 LoginController。它位于 Auth 子文件夹 (Controllers/Auth) 中,此控制器在子文件夹中工作。
我想将控制器移动到子文件夹中的原因是更好地组织文件。
这里有人能帮我解决这个问题吗?非常感谢您。
在您引用的 class 文件中 Controller
;最有可能 extends Controller
在 class 定义中。在您声明的命名空间 App\Http\Controllers\Dashboard
中没有名为 Controller
的 class。您很可能会尝试引用 App\Http\Controllers\Controller
,这意味着您将需要一个 use
声明或通过其 FQCN、完全限定的 Class 名称引用它。