Laravel:使用Schema \ Blueprint和Builder的BindingResolutionException

时间:2014-04-28 08:09:17

标签: laravel

我正在尝试创建一个Laravel应用程序,该应用程序在我的数据库中创建自定义表和列,以便存储用户生成的表单数据(自定义调查应用程序)。

我正在尝试使用Builder和Blueprint并在其上创建一个自定义类(就像我在FormBuilder中所做的那样)。

示例:

namespace Acme\Helpers;

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Schema\Builder;

class AnswersTableBuilder {

    private $builder;
    private $blueprint;

    public function __construct(Builder $builder, Blueprint $blueprint)
    {
        $this->builder = $builder;
        $this->blueprint = $blueprint;
    }

[...]

然而,当我尝试在我的控制器中使用它时,例如:

use Acme\Validators\SurveyValidator;
use Acme\Repos\Survey\SurveyRepository;
use Acme\Repos\Section\SectionRepository;
use Acme\Helpers\AnswersTableBuilder;


class SurveysController extends \BaseController {

    private $surveyRepo;
    private $sectionRepo;
    private $tableBuilder;

    public function __construct(SurveyRepository $survey, SectionRepository $section, AnswersTableBuilder $tableBuilder)
    {
        $this->beforeFilter('csrf', array('only' => array('store', 'destroy', 'update')));
        $this->surveyRepo = $survey;
        $this->sectionRepo = $section;
        $this->tableBuilder = $tableBuilder;
    }

[...]

我收到错误:

Unresolvable dependency resolving [Parameter #0 [ <required> $dsn ]]. 

我似乎能够在我的大多数课程中使用IoC容器,也许我在这里使用的依赖项有问题吗?尝试更改我的服务提供商中的条目,但它没有帮助。

非常感谢任何帮助!

感谢。

1 个答案:

答案 0 :(得分:0)

Illuminate\Database\Schema\BlueprintIlluminate\Database\Schema\Builder,这两个类也有依赖关系(第一个只需要表名,后者需要一个Illuminate \ Database \ Connection实例)。

也许你可以尝试注射它们?