在使用 query_builder 时,如何使用 Symfony formbuilder select 默认选项?
How can I select a default option with Symfony formbuilder when using query_builder?
我正在使用我的 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
.
这是行不通的。始终选择第一个选项。所以默认选择的选项总是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>
您正在将数据设置为文字。将其设置为对象引用:
$options['data'] = $entityManager->getReference(YourEntity::class, 2);
我正在使用我的 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
.
这是行不通的。始终选择第一个选项。所以默认选择的选项总是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>
您正在将数据设置为文字。将其设置为对象引用:
$options['data'] = $entityManager->getReference(YourEntity::class, 2);