如何在具有实体类型字段的侦听器中设置默认选定值

时间:2016-03-11 15:50:39

标签: forms symfony

这是我在控制器中的代码:

$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'选项声明的默认选定项目。

1 个答案:

答案 0 :(得分:3)

您可以在表单创建时传递值。

$formBuilder = $this->createFormBuilder(['entity_types' => $initialValueForEntityTypeField])