在控制器中注入Donctrine时出现Symfony2错误

时间:2015-07-31 14:13:23

标签: php symfony dependency-injection doctrine-orm

我试图在控制器中引用教义:

这是我的服务:

services:
    default_controller:
        class:     Catalog\WebBundle\Controller\DefaultController
        arguments: [@doctrine.orm.entity_manager]

控制器:

public function __construct(EntityManager $em)
{
}

CRITICAL - 未捕获的PHP异常ErrorException:" Catchable Fatal Error:传递给Catalog \ WebBundle \ Controller \ DefaultController :: __ construct()的参数1必须是Doctrine \ ORM \ EntityManager的实例,没有给出,在第2783行的/home/katalogas/domains/example.com/public_html/app/cache/dev/classes.php中调用,并在/home/katalogas/domains/example.com/public_html/src/Catalog/WebBundle/中定义Controller / DefaultController.php第23行"在/home/katalogas/domains/example.com/public_html/src/Catalog/WebBundle/Controller/DefaultController.php第23行     上下文:{"例外":"对象(错误异常)"}

我确定我的service.yml已加载,因为当我输入错误时 - 得到解析错误。

2 个答案:

答案 0 :(得分:2)

您可能已使用控制器表示法为路径设置控制器,例如:SomeBundle:SomeController:SomeAction您必须在路由中使用服务表示法。

# when defining your route in yml
...
{ _controller: default_controller:someAction ...}

答案 1 :(得分:1)

我使用它的语法。

    arguments:
        - @doctrine.orm.default_entity_manager