【问题标题】:FormBuilder multiple checkboxes required using EntityType FieldFormBuilder 需要使用 EntityType 字段的多个复选框
【发布时间】:2017-08-25 09:34:32
【问题描述】:

如何在 Symfony3 中使用 EntityType 字段而不是 ChoiceType 字段获得所需的多个复选框?实际上,我正在使用:

use Symfony\Bridge\Doctrine\Form\Type\EntityType;

->add('typesAdresses' , EntityType::class , array(
    'class' => 'EKUserBundle:TypeAdresse',
    'required' => true,
    'expanded' => true,
    'multiple' => true,
));

这将输出多个复选框,但不是必需的。

在我的表单中它必须是必需的。

【问题讨论】:

    标签: php symfony doctrine-orm symfony-3.3


    【解决方案1】:

    复选框的行为不同,您可以使用 choice_attr 选项绕过它:

    $builder
        ->add('typesAdresses' , EntityType::class , array(
            'class' => TypeAddresse::class,
            'expanded' => true,
            'multiple' => true,
            'choice_attr' => function($val, $key, $index) {
                return array('required' => true);
            },
        ))
    ;
    

    然而:我假设您希望实现的是“在一组复选框中至少选中一个复选框”。这本身就是一个相当不同的问题,在Using the HTML5 “required” attribute for a group of checkboxes? 中有更详尽的解释,因此您可能必须使用一些 JavaScript 来解决这个问题,并在您的 FormType 中省略所需的属性。

    【讨论】:

    • 感谢您回复我。就像你说的,我希望至少选中 1 个复选框。我试图在没有 javascript 的情况下修复它。
    猜你喜欢
    • 2017-12-11
    • 2017-11-02
    • 1970-01-01
    • 2013-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-11
    • 2020-06-12
    相关资源
    最近更新 更多