php - 为什么我的 Laravel 模块出现 "class not found"错误?

标签 php database laravel laravel-4

我使用的是“laravel/framework”:“4.2.*”版本,我想在我的项目中使用模块系统。我已按照 this document 中提供的说明进行操作.

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

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

Class 'App\Modules\Admin\Controllers\DB' not found.

为什么找不到这个类?

最佳答案

当在根命名空间之外使用 DB 或任何其他 Laravel facades 时,您需要确保您实际使用的是根命名空间中的类。你可以在类前放一个\

\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 始终需要完全限定的命名空间。

关于php - 为什么我的 Laravel 模块出现 "class not found"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25787376/

相关文章:

php - IMAP/PHP 中的 Thunderbird "Tags"

PHP函数在页面加载时自动调用,而不是通过onclick事件调用

php - 连接两个表并添加具有相同列id的数据

java - JSF 按时间间隔从应用程序 bean 轮询数据库

Laravel Eloquent 表中两列之间的位置

php - 合并两个 Laravel 集合

php - Eloquent 嵌套 whereHas

php - Yii2:关系名称是什么?

PHP For循环,如何在显示6行后循环代码

MySQL 选择最近的记录 ID