我正在使用Lumen 5.3.1。 $app->withFacades()
和$app->withEloquent()
在app.php
中未发表评论。web.php
我运行以下代码:
$app->get('foo', function () {
return app('db')->select("SELECT * FROM foo");
return "Connected successfully to database " . DB::connection()->getDatabaseName();
});
select()
调用正确返回foo
表中的数据。但是,DB::connection()
返回:
FatalErrorException in Manager.php line 74:
Call to a member function getConnection() on null
为什么一个有效,而另一个无效?
我会说仔细检查您的服务提供商。看起来您正在经历DB胶囊,而实际上这是用于Laravel/Lumen之外的。无论如何,如果您实际上正在使用胶囊管理器,则可能必须在提供程序的boot
方法中注册它,而不是register
。
此外,为了了解有关正在发生的事情的更多信息,请将其添加到您的测试代码中:
dd(app('db'), DB::getFacadeRoot());
如果需要,可以共享结果,这将提供有关两种方法之间差异的更多信息。
app('db')->select("SELECT * FROM foo");
DB::connection()->getDatabaseName();
尝试
app('db')->connection()->getDatabaseName();
或
'DB::connection()->getDatabaseName();