2011-10-04 89 views

回答

12

假設你創建了一個FormType類。你不知道如何在這個對象中傳遞容器。

立即創建自己的類型從FormType延伸,並通過構造

class MyType extends FormType 
{ 
    private $container; 

    public function __construct(ContainerInterface $container) 
    { 
     $this->container = $container; 
    } 
} 

通過容器在你config.yml,定義新類型

mytype: 
    class: ...\MyType 
    arguments: ["@service_container"] 
    tags: 
     - { name: form.type } 

現在,運用MyType代替FormType的在你所有的控制器中

+1

從MyType擴展的表單類將如何?我無法讓他們工作。我得到:「傳遞給Makrosoft \ UtilesBundle \ Utiles \ MyType :: __ construct()的參數1必須是Symfony \ Component \ DependencyInjection \ ContainerInterface的一個實例,沒有給出...」 –

1

也許你可以在控制器中請求User對象,並將它傳遞給構造函數中的存儲庫?

+0

存儲庫是在Type的構建表格中構建的,而且這個函數是一個靜態調用,所以我不能這樣做。 –