Lumen 调用 DB::connection() returns null 即使 select() 成功
Lumen call to DB::connection() returns null even though select() is successful
我正在使用 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
table 正确调用 returns 数据。但是,DB::connection()
returns:
FatalErrorException in Manager.php line 74:
Call to a member function getConnection() on null
为什么一个有效而另一个无效?
app('db')->select("SELECT * FROM foo");
DB::connection()->getDatabaseName();
尝试
app('db')->connection()->getDatabaseName();
或
\DB::connection()->getDatabaseName();
我会说仔细检查您的服务提供商。看起来您正在经历 the DB Capsule,而实际上这是打算在 Laravel/Lumen 之外使用。无论如何,如果您实际上正在使用 Capsule Manager,您可能必须在提供者的 boot
方法中注册它,而不是 register
.
此外,为了进一步了解发生了什么,请将此添加到您的测试代码中:
dd(app('db'), DB::getFacadeRoot());
如果需要,请分享结果,这将提供有关两种方法之间差异的更多信息。
我正在使用 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
table 正确调用 returns 数据。但是,DB::connection()
returns:
FatalErrorException in Manager.php line 74:
Call to a member function getConnection() on null
为什么一个有效而另一个无效?
app('db')->select("SELECT * FROM foo");
DB::connection()->getDatabaseName();
尝试
app('db')->connection()->getDatabaseName();
或
\DB::connection()->getDatabaseName();
我会说仔细检查您的服务提供商。看起来您正在经历 the DB Capsule,而实际上这是打算在 Laravel/Lumen 之外使用。无论如何,如果您实际上正在使用 Capsule Manager,您可能必须在提供者的 boot
方法中注册它,而不是 register
.
此外,为了进一步了解发生了什么,请将此添加到您的测试代码中:
dd(app('db'), DB::getFacadeRoot());
如果需要,请分享结果,这将提供有关两种方法之间差异的更多信息。