2014-02-07 42 views
3

我試圖將許多服務添加到Controller的構造中,但沒有成功。Symfony 2依賴注入到Controller構造中

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

   public function indexAction() 
   { 
       ... 
   } 

} 

我必須遵循什麼路徑?

+0

你需要定義你的控制器'PersonController'的[服務](http://symfony.com/doc/current/cookbook/ servicem的名字controller/service.html) –

回答

1

如@Cerad提this post

關鍵是要確定你的控制器作爲服務,然後使用該服務ID而不是類名。

http://symfony.com/doc/current/cookbook/controller/service.html

+1

這不是一個完整的答案,你不能只是插入一個鏈接到文檔 –

+1

這也只是提到了另一個答案。對於@Victor – ferdynator

+0

不是很公平,如果你認爲不對,但我不明白要重複的答案。即使考慮到這是他需要的。很明顯,它很快就足夠了 –

1

您需要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. UtilityServicearguments是要注入