Symfony 2依赖注入到控制器构造函数中。

4

我尝试将许多服务添加到控制器的结构中,但没有成功。

class PersonController extends Controller
{
    public function __construct(UtilityService $Utils)
    {
        $this->util = $Utils;
    }

    public function indexAction()
    {
        ...
    }

}

我应该走哪条路?


你需要将你的控制器 PersonController 定义为一个服务 - Victor Bocharsky
2个回答

2
您需要在services.yml中将您的PersonController控制器定义为服务,并注入UtilityService
# src/Acme/HelloBundle/Resources/config/services.yml
parameters:
    # ...
    person.controller.class: Acme\HelloBundle\Controller\PersonController

services:
    person.controller:
        class: "%person.controller.class%"
        arguments: ["@UtilityService"]

说明:

  1. person.controller.class是你的控制器类的名称
  2. arguments中的UtilityService是你想要注入的服务名称

1

1
这不是一个完整的答案,你不能只插入文档链接。 - Victor Bocharsky
1
这只是提到了另一个答案,对@Victor不太公平。 - ferdynator
抱歉,如果你认为不同,请原谅我的看法,我认为复制答案没有意义。即使考虑到这就是他所需要的,这个答案已经足够清晰、快速且好用。 - Lt.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接