Вызов Lumen для DB :: connection () возвращает ноль, даже если select () выполнен успешно

Я использую 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

Почему один работает, а другой нет?

10

Решение

Я бы сказал, дважды проверьте ваши поставщики услуг. Похоже, вы проходите Капсула БД, когда на самом деле это предназначено для использования вне Laravel / Lumen. В любом случае, если вы на самом деле используете Capsule Manager, вам, вероятно, придется зарегистрировать его в boot метод провайдера, а не register,

Кроме того, чтобы узнать больше о том, что происходит, добавьте это в свой тестовый код:

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

Если хотите, поделитесь результатом, это даст больше информации о разнице между этими двумя методами.

4

Другие решения

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

пытаться

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

или же

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

По вопросам рекламы [email protected]