【问题标题】:Constructor dependency injection laravel 5构造函数依赖注入 laravel 5
【发布时间】:2015-05-01 14:09:03
【问题描述】:

我已将我的 laravel 应用程序从 4.2 升级到 5,尝试注入我的依赖项时出现以下错误:

<?php namespace App\Classes\Api\Zurmo;

  use App\Classes\Api\Rest\ApiRestHelper;

  class Connector implements ConnectorInterface {

  public function __construct(ApiRestHelper $rest)
  {
     ...

传递给 App\Classes\Api\Zurmo\Connector::__construct() 的参数 1 必须是 App\Classes\Api\Rest\ApiRestHelper 的实例,没有给出

据我所知,它看起来不错,我在这里缺少什么?

【问题讨论】:

  • 你如何使用这个类?
  • 上面的连接器类是从控制器调用的,如下所示:使用 App\Classes\Api\Zurmo\Connector as Zurmo;
  • 您是否将您的接口绑定到您的类实现?

标签: php constructor dependency-injection laravel-5


【解决方案1】:

如果您希望 Laravel 自动解决您的依赖关系,您必须通过 Service Container 实例化该类:

$zurmo = App::make('App\Classes\Api\Zurmo\Connector');

或使用app() 函数:

$zurmo = app('App\Classes\Api\Zurmo\Connector');

注意你必须写出类的完整路径


或者,您可以让 Laravel 将连接器本身注入控制器中。例如:

use App\Classes\Api\Zurmo\Connector as Zurmo;

// ...

public function __construct(Zurmo $zurmo){
    $this->zurmo = $zurmo;
}

public function someAction(){
    $this->zurmo->doMagic();
}

【讨论】:

    猜你喜欢
    • 2011-02-02
    • 2019-04-20
    • 1970-01-01
    • 1970-01-01
    • 2018-06-17
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    相关资源
    最近更新 更多