首页 文章

Symfony 3.4供应商自动装配

提问于
浏览
0

我遇到了symfony 3.4的问题 . 我坚持了下来 . 我想我没有让symfony autowire正确,但我找不到导致错误的原因 .

我有一个全新的symfony安装,只安装了一个附加软件包: league/tactician-bundle

我尝试以下面的方式将它注入DefaultController的构造函数中:

/**
 * @var CommandBus
 */
private $bus;

public function __construct(CommandBus $bus)
{
    $this->bus = $bus;
}

/**
 * @Route("/", name="homepage")
 */
public function indexAction(Request $request)
{
    dump($this->bus);die;
}

我的services.yml没有受到影响 . 当我点击控制器时出现以下错误: Cannot autowire service "AppBundle\Controller\DefaultController": argument "$bus" of method "__construct()" references class "League\Tactician\CommandBus" but no such service exists. You should maybe alias this class to the existing "tactician.commandbus.default" service.

当我在我的services.yml中定义它时 League\Tactician\CommandBus: '@tactician.commandbus.default' 似乎一切正常,但是以这种方式定义我需要的每一项服务都是非常不舒服的 . 这是唯一的方式还是我错过了什么?

提前致谢!

1 回答

  • 0

    我很确定你忘了注册捆绑包,这是我可以重新解决问题的唯一方法 . 转到AppKernel.php并添加
    新联盟\战术\捆绑\ TacticianBundle()
    在你的$ bundles数组中 .

    L.E.我的坏,不一样的错误信息 . 您使用的是哪个版本的捆绑包?我有“^ 1.1”并且工作完美无瑕 .

相关问题