Laravel ReflectionException:类db不存在

Laravel ReflectionException:类db不存在,laravel,Laravel,我正在创建一个库,它使用\illumb\Support\Facades\DB引用数据库。我在调用DB::table()->where()->get()时遇到以下异常:“ReflectionException:Class DB不存在”。问题是什么?我需要做什么来克服它 我知道有一个过程使用\illumb\Database\Capsule\Manager建立到数据库的连接。但是我还没有找到任何关于如何使用\illumb\Support\Facades\DB实现此功能的示例 代码示例: use \Il

我正在创建一个库,它使用
\illumb\Support\Facades\DB
引用数据库。我在调用
DB::table()->where()->get()
时遇到以下异常:“ReflectionException:Class DB不存在”。问题是什么?我需要做什么来克服它

我知道有一个过程使用
\illumb\Database\Capsule\Manager
建立到数据库的连接。但是我还没有找到任何关于如何使用
\illumb\Support\Facades\DB
实现此功能的示例

代码示例:

use \Illuminate\Support\Facades\DB;

abstract class Data
{
    public static function tables($prefix, $mode=null)
    {
        $outbound = array();
        $tables = DB::table('information_schema.tables')->where('TABLE_NAME', 'LIKE', $prefix.'_%')->get();
        foreach ($tables as $table) {
            ...
        }
        return $outbound;
    }
}
堆栈跟踪:

~/vendor/laravel/framework/src/Illuminate/Container/Container.php:749
~/vendor/laravel/framework/src/Illuminate/Container/Container.php:644
~/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:709
~/vendor/laravel/framework/src/Illuminate/Container/Container.php:1203
~/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:175
~/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:144
~/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:231
~/Data.php:XXX

因为它是一个外观,所以将其添加到类的顶部以使其正常工作:

use DB;
或使用完整命名空间:

$tables = \DB::table...

这不是正确的方式,但你可以这样写。在DB前面加一个“/”

$tables=\DB::table('information_schema.tables')->where('table_NAME','LIKE',$prefix.''''.'''.'''.''.''.'''.'''.'')->get()

TL;博士: 用
DB:::
临时注释行并添加可以帮助您找出真正的原因

详细解释: 原因之一可能与此线程中列出的原因类似:,唯一的区别是
db
,而不是缺少的
log

这似乎取决于哪个类首先出现在代码中-在您和我的代码中是
DB
,而通常是
Log
facade触发了错误

对我来说,原因是缺少第三方软件包,其服务提供商已经添加到
config/app.php
中的列表中。结果,每个artisan命令spat
调用undefined方法将照亮\Support\Facades\DB::connection()
错误。在将显式
use illumb\Support\Facades\DB
添加到有问题的文件顶部后,错误更改为您的(
class DB不存在


我添加了来自的代码,然后用
DB::connection()
注释掉了这行代码,artisan显示了真正的罪魁祸首。在
composer require
ing丢失的包后,laravel再次开始工作。

如果其他人在运行phpunit测试时得到了这个问题,我可以通过扩展
tests\TestCase
来修复它,而不是
phpunit\Framework\TestCase

,除了
使用\light\Support\Facades\DB
代码中已经有哪些?@JayBienvenu否,您可以删除此行。取出原始的
use
语句,并将
DB
替换为
\DB
。找不到类“DB”(毫不奇怪)。“/”在类名引发语法错误之前,您的意思是“\”?