在存储库中注入 DatabaseManager Class
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 不会执行此操作,因此您必须在 bootstrap 代码中的某处手动执行此操作。这告诉 IoC 通过服务定位器使用 db
解析 Illuminate\Database\DatabaseManager
。
或者您可以执行以下操作:
app()->make('db');
我正在使用 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 不会执行此操作,因此您必须在 bootstrap 代码中的某处手动执行此操作。这告诉 IoC 通过服务定位器使用 db
解析 Illuminate\Database\DatabaseManager
。
或者您可以执行以下操作:
app()->make('db');