我想將字段country
(字符串)添加到我的Form\Type
。Symfony:FormType,Entity,queryBuilder - 如何更改生成選項的值?
country
是不相關的Entity\Country
,並應存儲的國家碼(恩,IT,FR,...),而不是實體的ID。
我將Entity\Country
的國家代碼加載到我的表單中,但生成的select將實體的ID作爲值,__toString()
-作爲文本返回。
如何將c.code
設置爲<option>
的值?
FormType:
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder->add('country', 'entity', array(
'class' => 'appBundle:Country',
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('c')->orderBy('c.code', 'ASC');
}
));
}
生成的選擇:
<select>
<option value="1">en</option>
<option value="2">it</option>
<option value="3">fr</option>
</select>
需要選擇:提前
<select>
<option value="en">en</option>
<option value="it">it</option>
<option value="fr">fr</option>
</select>
謝謝!
數據變壓器(http://symfony.com/doc/current/cookbook/form/data_transformers.html)可能會幫助,雖然我認爲這將是減少混亂只使用一個普通的選擇列表而不是實體類型。製作一個自定義的CountryFormType並讓它查詢國家代碼。 – Cerad