Laravel 5.1合同类不存在



我正在尝试使用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接口。

最新更新