我的表单中有一个EntityType,我想设置一个默认的选择值,它可能吗?
这是我在FormType中的代码:
->add('pays', EntityType::class, [
'class' => Pays::class,
'choice_label' => function (Pays $pays) {
return $pays->getNomFrFr();
},
])
HTML中select的每个选项的值与我的数据库中的id匹配:
<label for="boutique_pays" class="required">Pays</label><select id="boutique_pays" name="boutique[pays]">
<option value="1">Afghanistan</option>
<option value="2">Albanie</option>
<option value="3">Antarctique</option>
<option value="4">Algérie</option>
...
<option value="237">Wallis et Futuna</option>
<option value="238">Samoa</option>
<option value="239">Yémen</option>
<option value="240">Serbie-et-Monténégro</option>
<option value="241">Zambie</option>
</select>
我想将所选值设置为&#39; 75&#39; (法国),它可能吗?
提前致谢
答案 0 :(得分:0)
在创建表单类型时传递EntityManager和默认选择objectID。
$repository = $this->getDoctrine()->getRepository(YourClass)->find($id);
$yourDefaultValue = $repository->getId();
$form = $this->createForm(new YourTypeType($entityManager), $yourEntity, array(
'action' => $this->generateUrl('route_create'),
'method' => 'POST',
'your_default_value' => $yourDefaultValue,
));
在表单类型中添加构造函数。然后替换代码......
private $em;
public function __construct($em) {
$this->em = $em;
}
->add('pays', EntityType::class, [
'class' => Pays::class,
'choice_label' => function (Pays $pays) {
return $pays->getNomFrFr();
},
'data'=>$this->em->getReference("YourEntity",$options['your_default_value'])
])
最后,在setDefaultOptions
中添加your_default_value空数组public function setDefaultOptions(OptionsResolverInterface
$resolver)
{
$resolver->setDefaults(array(
'data_class' => 'YourEntity',
'your_default_value' => array()
));
}