我正在尝试使用Laravel数据库契约,而不是facade(DB::table),并获得:
ReflectionException
Class IlluminateContractsDatabase does not exist
使用IlluminateDatabaseDatabaseManager
类可以很好地工作,但除了依赖注入之外,我更喜欢不使用具体类,而是使用抽象类(契约/接口)。
这是我试过的。
控制器:
<?php namespace AppHttpControllers;
use IlluminateContractsDatabase as DB;
class MyController extends Controller
{
public function __construct(DB $db)
{
$this->db = $db;
}
}
AppServiceProvider:
public function register()
{
$this->app->bind(
'IlluminateContractsAuthRegistrar',
'AppServicesRegistrar',
'IlluminateContractsDatabase'
);
}
感谢您的帮助!
除非您自己添加,否则该合同不存在。IlluminateContractsRedisDatabase
存在,但不是您想要使用的。
至于Solution,我通常会注入IlluminateDatabaseDatabaseManager
类,我相信这就是您无论如何都要获得的类。该类实现了IlluminateDatabaseConnectionResolverInterface
接口。