如何使用 Symfony formbuilder 选择默认选项?

使用我的 formBuilder,我正在构建一个选择字段:


$options = [

              'attr' => array('class' => 'form-control'),

              'data' => '2',

              'mapped' => false,

              'label' => $label,

              'data_class' => null,

            ];


if ($type == 'choice') {


              $options['attr'] = array('class' => 'form-control select2');

              $options['class'] = 'App\Entity\Options';

              $options['choice_label'] = 'name';

              $options['query_builder'] = function (EntityRepository $er) use ($fieldId) {

                   return $er->createQueryBuilder('f')

                          ->leftJoin('f.fields', 'fi')

                          ->where(":id MEMBER OF f.fields")

                          ->setParameter(':id', $fieldId);

              };

              $options['data'] = '2';



   $formBuilder->add($id, ChoiceType::class, $options);

}

它运作良好,使用我的所有选项创建了一个选择字段。问题是,我希望默认选择的选项是2.


这是行不通的。始终选择第一个选项。所以默认选择的选项是 always green。但我需要它blue。这是选择框,即创建:


<select class="form-control select2 select2-hidden-accessible" tabindex="-1" aria-hidden="true">

    <option value="1">green</option>

    <option value="2">blue</option>        

    <option value="3">red</option>

</select> 


POPMUISE
浏览 220回答 1
1回答

慕村225694

您正在将数据设置为文字。将其设置为对象引用:$options['data']&nbsp;=&nbsp;$entityManager->getReference(YourEntity::class,&nbsp;2);
打开App,查看更多内容
随时随地看视频慕课网APP