我在symfony2控制器中有DI问题
public function __construct(EngineInterface $engine,EntityManager $entityManager,...
配置
acme.acme_controller:
class: %acme.acme_controller_class%
arguments:
- @templating
- @doctrine.orm.entity_manager
...
calls:
- [ setContainer, [ @service_container ] ]
基本上,如果我在浏览器中显示一个页面,这会有效,但如果我尝试使用
,它会中断$this->forward("Acme:Acme:something", array('id' => $id));
我得到的只是
Argument 1 passed to ::__construct() must implement interface Symfony\Component\Templating\EngineInterface, none given, called in app\cache\dev\classes.php on line 1543 and defined
重定向工作正常,所以我在这里做错了什么? Symfony 2.3.11
答案 0 :(得分:1)
您需要传递服务ID(而不是捆绑类名称)才能启动DI。例如:
$this->forward("acme.acme_controller:somethingAction", array('id' => $id));
根据评论编辑添加操作。