即使select()成功,Lumen对DB :: connection()的调用也会返回null

时间:2016-11-06 21:29:35

标签: php lumen lumen-5.3

我正在使用流明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

为什么一个工作而另一个工作?

2 个答案:

答案 0 :(得分:4)

我说要仔细检查您的服务提供商。看起来你正在经历the DB Capsule,而实际上是打算在Laravel / Lumen之外使用。无论如何,如果你实际上使用的是Capsule Manager,你可能需要在提供者的boot方法中注册,而不是register

此外,为了了解更多有关正在进行的操作的信息,请将其添加到测试代码中:

dd(app('db'), DB::getFacadeRoot());

如果需要,可以分享结果,这将提供有关两种方法之间差异的更多信息。

答案 1 :(得分:0)

 app('db')->select("SELECT * FROM foo");
 DB::connection()->getDatabaseName();

尝试

app('db')->connection()->getDatabaseName();

\DB::connection()->getDatabaseName();