Laravel 5.1合同类不存在


Laravel 5.1 contract class does not exist

我正在尝试使用Laravel数据库契约,而不是facade(DB::table),并获得:

ReflectionException
Class Illuminate'Contracts'Database does not exist 

使用Illuminate'Database'DatabaseManager类可以很好地工作,但除了依赖注入之外,我更喜欢不使用具体类,而是使用抽象类(契约/接口)。

这是我试过的。

控制器:

<?php namespace App'Http'Controllers;
use Illuminate'Contracts'Database as DB;
class MyController extends Controller
{
    public function __construct(DB $db)
    {
        $this->db = $db;
    }
}

AppServiceProvider:

public function register()
    {
        $this->app->bind(
            'Illuminate'Contracts'Auth'Registrar',
            'App'Services'Registrar',
            'Illuminate'Contracts'Database'
        );
    }

感谢您的帮助!

除非您自己添加,否则该合同不存在。Illuminate'Contracts'Redis'Database存在,但不是您想要使用的。

至于Solution,我通常会注入Illuminate'Database'DatabaseManager类,我相信这就是您无论如何都要获得的类。该类实现了Illuminate'Database'ConnectionResolverInterface接口。