我使用的是"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"
]
},