在存储库类中注入DatabaseManager


Inject DatabaseManager in Repository Class

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

我试着跟随。。。

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

最好的方法是什么。请提出建议。感谢

如果您想注入DatabaseManager,那么您需要将其绑定到容器,以便它知道如何实例化它:

$app->alias('db', 'Illuminate'Database'DatabaseManager');

默认情况下,Lumen不会这样做,所以你必须在引导程序代码中手动执行。此命令通过服务定位器告诉IoC使用db来解析Illuminate'Database'DatabaseManager

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

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