我有一个名为Country
的实体。它包含以下字段:
id
nameDe //German Names
nameEn //English Names
现在我有一个FormTyp,其中Country
是entity
类型的字段,将在FormBuilder
中设置。
$builder
....
->add('country', 'entity', array(
"class" => "Company\Project\ProjectBundle\Entity\Country",
'required' => false
));
一切正常,Country
条目将显示在表单中,但始终是nameDe
字段中的德语名称。
我正在使用我的网址中的locale
将我的应用程序翻译成英文,这是正常的方法。
现在我想在nameEn
建立时显示来自locale
的英文国家/地区,我该怎么办?我考虑过来自PRE_SET_DATA
的{{1}}事件,但我有点无能为力。实现这个目标的方法是什么?
答案 0 :(得分:1)
你可以很容易地做到这一点。最简单的方法是:
构造强>
private $locale;
public function __construct($locale){
$this->locale = $locale;
}
现在,只需添加property
选项:
$builder
....
->add('country', 'entity', array(
"class" => "Company\Project\ProjectBundle\Entity\Country",
'required' => false,
'property' => $this->locale
));
我更喜欢的另一种方法是将FormType定义为服务,并将其设置为自动注入locale
。