php - Symfony 在 CheckboxType 中转换 ChoiceType

标签 php twig symfony

我的表单类型有问题。我有一个实体事件和另一个实体类。它在 ManyToMany 中。当我显示表单时,它位于 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 - Symfony 在 CheckboxType 中转换 ChoiceType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41125218/

相关文章:

php - 在 whm 中隐藏 mysql 错误

javascript - 在 Symfony2/Twig 中使用 javascript

windows - 无法从命令行运行 git

symfony - 如何在 Symfony 4 中覆盖 FOSUserBundle 表单

symfony - 使用 Behat 3 测试 Symfony2 电子邮件

symfony - Twig,过滤一个循环

php - "Paypal express checkout",在paypal账户中看不到任何交易,尽管在程序中返回成功代码

使用系统命令并在后台运行的 php 脚本——它仍会按顺序运行吗?

PHP 不显示错误或警告

php - 在包含的 Twig 模板中覆盖 block