我有 Laravel 8 项目,但我正面临子文件夹中的 Controller 问题。
我有 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 Controller 文件夹中有 DashboardController 时,一切正常。同样有趣的是 LoginController。它位于 Auth 子文件夹 (Controllers/Auth) 中,并且该 Controller 在子文件夹中工作。我想将 Controller 移动到子文件夹的原因是更好的文件组织。
这里有人吗,谁能帮我解决这个问题?非常感谢您提前。
最佳答案
在该类文件中,您引用了 Controller
;最有可能 extends Controller
关于类定义。没有名为 Controller
的类在您声明的命名空间中,App\Http\Controllers\Dashboard
.您最有可能尝试引用 App\Http\Controllers\Controller
这意味着您需要一个 use
声明或通过其 FQCN,完全限定类名称引用它。
关于php - Laravel 8 问题与子文件夹内的 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67034633/