我的表单类型有问题。我有一个实体事件和一个其他实体类。它在多对多中。当我显示表单时,它在 ChoiceType 中,但我希望它在 CheckboxType 中。所以我:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder->add('libelle')
        ->add('horraire')
        ->add('horraireDebut')
        ->add('horraireFin')
        ->add('description')
        ->add('classes');
}

它显示一个 ChoiceType 但我想要一个 CheckboxType ,所以我将其更改为:
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder->add('libelle')
        ->add('horraire')
        ->add('horraireDebut')
        ->add('horraireFin')
        ->add('description')
        ->add('classes', CheckboxType::class);
}

但这仅显示一个复选框,而我有多个录音(第一个代码显示得很好)。

我的 form.html.twig :
<div class="form-group{% if form.classes.vars.errors|length %} has-error{% endif %}">
<label for="{{ form.classes.vars.id }}" class="col-sm-3 control-label no-padding-right required">Classes <span class="red">*</span></label>
<div class="col-sm-9">
    {{ form_widget(form.classes,{'attr': {'class': 'form-control'}}) }}
    {{ form_errors(form.classes) }}
</div>

如何获得复选框行或复选框下拉列表?

谢谢!

最佳答案

只需将 multipleexpanded 选项一起使用即可实现( Ref ):

$builder->add('classes', null, array(
    'multiple' => true,
    'expanded' => true,
));

然后将呈现复选框。

请注意,如果您使用 Doctrine ORM,null 值意味着 EntityType::class。否则,使用 EntityType::class'class' => Entity::class 选项。

关于php - CheckboxType 中的 Symfony 转换 ChoiceType,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41125218/

10-17 03:05