【问题标题】:Laravel 8 issue with controller inside subfolderLaravel 8 子文件夹内的控制器问题
【发布时间】:2021-07-06 03:10:36
【问题描述】:

我有 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) 中,此控制器在子文件夹中工作。

我想将控制器移动到子文件夹的原因是更好地组织文件。

这里有人可以帮我解决这个问题吗?非常感谢您。

【问题讨论】:

    标签: php laravel controller namespaces


    【解决方案1】:

    在那个类文件中你引用Controller;最有可能在类定义上extends Controller。在您声明的命名空间App\Http\Controllers\Dashboard 中没有名为Controller 的类。您最有可能尝试引用 App\Http\Controllers\Controller,这意味着您需要为此使用 use 语句或通过其 FQCN(完全限定类名)引用它。

    【讨论】:

    • Lagbox 非常感谢!!!现在可以了。我完全没有注意到缺少 Controller use 语句。
    猜你喜欢
    • 2021-08-25
    • 1970-01-01
    • 2013-09-21
    • 2015-05-31
    • 2020-04-01
    • 2015-09-14
    • 2021-04-09
    • 2018-09-25
    • 1970-01-01
    相关资源
    最近更新 更多