我遇到了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.
当我在League\Tactician\CommandBus: '@tactician.commandbus.default'
这样的services.yml中定义它时,一切似乎都可以正常工作,但是以这种方式定义我需要的每个服务都非常不舒服。是唯一的方法还是我错过了什么?
谢谢!
答案 0 :(得分:0)
我很确定您忘了注册捆绑软件,这是我可以解决此问题的唯一方法。转到您的AppKernel.php并添加
new League\Tactician\Bundle\TacticianBundle()
在您的$ bundles数组中。
L.E。我的糟糕,不是相同的错误消息。您使用的是哪个版本的捆绑软件?我有“ ^ 1.1”,并且工作无懈可击。