为什么我会得到一个“;类未找到”;我的Laravel模块出现错误


Why am I getting a "class not found" error in my Laravel module?

我使用的是"laravel/framework":"4.2.*"版本,我想在我的项目中使用模块系统。我已按照本文件中的说明进行操作。

我可以使用命令创建模块:php artisan modules:create module_name。我在我的应用程序目录中创建了一个管理模块,该模块的目录结构已经创建。

我在管理模块的控制器的一个操作中使用DB::select('some SQL statement'),但它给了我以下错误:

找不到类"App''Modules''Admin''Controllers''DB"。

为什么找不到这个类?

在根命名空间之外使用DB或任何其他Laravel facade时,需要确保在根命名空间中实际使用该类。你可以在课前放一个'

'DB::select(...)

或者,您可以在类文件中使用use关键字来允许使用不同的名称空间类,而无需每次使用时都明确写出名称空间。

<?php namespace App'Modules'Admin'Controllers;
use DB;
use BaseController;
class ModuleController extends BaseController {
    public function index()
    {
        // This will now use the correct facade
        $data = DB::select(...);
    }
}

请注意,use关键字始终假定它正在从根命名空间加载命名空间。因此,use总是需要一个完全限定的命名空间。

使用Illuminate''Support''Facades''DB;

或者您可以在composer.json 中使用自动加载

"autoload": {
    "classmap": [
        "app/commands",
        "app/controllers",
        "app/models",
        "app/database/migrations",
        "app/database/seeds",
        "app/tests/TestCase.php"
    ]
},