我正在使用“laravel / framework”:“4.2。*”版本,我想将模块系统用于我的项目。我已按照this document中提供的说明操作。
我可以使用以下命令创建模块:php artisan modules:create module_name
。我在app目录中创建了一个管理模块,并且已经创建了模块的目录结构。
我在管理模块的控制器的一个操作中使用DB::select('some SQL statement')
,但是它给了我以下错误:
找不到类'App \ Modules \ Admin \ Controllers \ DB'。
为什么找不到这门课?
答案 0 :(得分:13)
在根命名空间外使用DB
或任何其他Laravel外观时,您需要确保在根命名空间中实际使用该类。你可以在课前加上\
。
\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
始终需要完全限定的命名空间。
答案 1 :(得分:0)
或者你可以在composer.json
中使用自动加载"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"
]
},
答案 2 :(得分:0)
使用Illuminate \ Support \ Facades \ DB;