Symfony2:访问存储库中的容器
答
假设你创建了一个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的在你所有的控制器中
答
也许你可以在控制器中请求User对象,并将它传递给构造函数中的存储库?
+0
存储库是在Type的构建表格中构建的,而且这个函数是一个静态调用,所以我不能这样做。 –
从MyType扩展的表单类将如何?我无法让他们工作。我得到:“传递给Makrosoft \ UtilesBundle \ Utiles \ MyType :: __ construct()的参数1必须是Symfony \ Component \ DependencyInjection \ ContainerInterface的一个实例,没有给出...” –