symfony前进与DI

时间:2014-03-03 13:46:43

标签: php symfony

我在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

1 个答案:

答案 0 :(得分:1)

您需要传递服务ID(而不是捆绑类名称)才能启动DI。例如:

$this->forward("acme.acme_controller:somethingAction", array('id' => $id));

根据评论编辑添加操作。