Я использую 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
Почему один работает, а другой нет?
Я бы сказал, дважды проверьте ваши поставщики услуг. Похоже, вы проходите Капсула БД, когда на самом деле это предназначено для использования вне Laravel / Lumen. В любом случае, если вы на самом деле используете Capsule Manager, вам, вероятно, придется зарегистрировать его в boot
метод провайдера, а не register
,
Кроме того, чтобы узнать больше о том, что происходит, добавьте это в свой тестовый код:
dd(app('db'), DB::getFacadeRoot());
Если хотите, поделитесь результатом, это даст больше информации о разнице между этими двумя методами.
app('db')->select("SELECT * FROM foo");
DB::connection()->getDatabaseName();
пытаться
app('db')->connection()->getDatabaseName();
или же
\DB::connection()->getDatabaseName();