实体类型的默认值
问题描述:
我在我的表单中有一个EntityType,我想设置一个默认的选定值,这可能吗?实体类型的默认值
这是我在我的FormType代码:
->add('pays', EntityType::class, [
'class' => Pays::class,
'choice_label' => function (Pays $pays) {
return $pays->getNomFrFr();
},
])
在HTML比赛中选择的每个选项在我的数据库中的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>
我想设置的选择值'75'(法国),这可能吗?
在此先感谢
答
您可以设置在控制器指定的操作选择框的值。你不能直接设置形式。
$form->setEntityType($entity);
+0
我得放函数setEntityType的参数中的值'75'? –
+0
您可以从数据库中找到75条记录的实体。然后在setEntityType()中设置它的实体。 –
答
当创建表单类型时,通过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,
));
在表单中添加构造type.then更换你的代码...
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
public function setDefaultOptions(OptionsResolverInterface
$resolver)
{
$resolver->setDefaults(array(
'data_class' => 'YourEntity',
'your_default_value' => array()
));
}
[文件](HTTPS添加your_default_value空数组: //symfony.com/doc/current/reference/forms/types/entity.html#data)和[可能的解决方案](https://*.com/questions/19577982/set-default-value-for-entity- type-in-symfony2) – maches