Php 在存储库类中注入DatabaseManager

Php 在存储库类中注入DatabaseManager,php,laravel,lumen,Php,Laravel,Lumen,我正在使用Lumen,并试图在Repository类中注入DatabaseManager,以便在不支持DBfacade和Elount的情况下运行一些查询 我试着跟随 use Illuminate\Database\DatabaseManager; class Myclass { public function __construct(DatabaseManager $database) { $this->db = $

我正在使用Lumen,并试图在Repository类中注入DatabaseManager,以便在不支持
DB
facade和
Elount
的情况下运行一些查询

我试着跟随

use Illuminate\Database\DatabaseManager;

    class Myclass
    {
        public function __construct(DatabaseManager $database)
        {
            $this->db = $database;
        }

      public function blah()
      {
        $this->db->connection()->table('table')->select('*');
      }
    }
但我得到以下错误

BindingResolutionException in Container.php line 823:
Unresolvable dependency resolving [Parameter #0 [ <required> $app ]] in class Illuminate\Database\DatabaseManager
Container.php第823行中的BindingResolutionException: 类\数据库\数据库管理器中无法解析的依赖项解析[参数#0[$app]]
最好的方法是什么。请建议。谢谢

如果要注入
数据库管理器
,则需要将其绑定到容器,以便它知道如何实例化它:

$app->alias('db', 'Illuminate\Database\DatabaseManager');
默认情况下,Lumen不会执行此操作,因此您必须在引导代码中的某个位置手动执行此操作。这告诉IoC通过服务定位器使用
db
解析
illighted\Database\DatabaseManager

或者,您可以执行以下操作:

app()->make('db');