我正在尝试在表单中显示面向用户的选项列表,但我无法访问容器以获取当前用户。
我不知道如何在存储库中获取它而不是在类型中。
任何想法?
答案 0 :(得分: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 :(得分:1)
也许您可以在控制器中请求User对象,并将其传递给构造函数中的存储库?