我遇到了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 回答
我很确定你忘了注册捆绑包,这是我可以重新解决问题的唯一方法 . 转到AppKernel.php并添加
新联盟\战术\捆绑\ TacticianBundle()
在你的$ bundles数组中 .
L.E.我的坏,不一样的错误信息 . 您使用的是哪个版本的捆绑包?我有“^ 1.1”并且工作完美无瑕 .