这是我在控制器中的代码:
$entity_options = array(
'class' => 'ACCUEILBundle:Param',
'property' => 'description',
'query_builder' => function(\Doctrine\ORM\EntityRepository $er) {
return $er->createQueryBuilder('p')
->where("p.categorie = 5")
->orderBy('p.description', 'ASC');
}
);
if($entity_type !== null) {
$entity_options['data'] = $this->getDoctrine()->getManager()->find('ACCUEILBundle:Param', $entity_type);
}
$formBuilder->add('entity_types', 'entity', $entity_options);
$form->$formBuilder->getForm();
如果我在列表中选择一个项目并提交表单,则$ form-> getData()['entity_types']将返回所选的Param对象。
如果我想使用'data'选项强制使用默认选定项并显示$ form-> getData(),则返回一个emtpy数组。
我应该在哪里获得我刚刚使用'data'选项声明的默认选定项目。
答案 0 :(得分:3)
您可以在表单创建时传递值。
$formBuilder = $this->createFormBuilder(['entity_types' => $initialValueForEntityTypeField])