在表单类型选项上检查Symfony设置值

Clé*_*aud 7 forms symfony

我使用带有Symfony的FormBuilder创建一个表单,如:

$builder
            ->add('timeBarOpen', 'time', array('label' => 'Ouverture Bar', 'attr' => array('class' => 'form-control')))
            ->add('timeBarClose', 'time', array('label' => 'Fermeture Bar', 'attr' => array('class' => 'form-control')))
            ->add('timeStartHappyHour', 'time', array('label' => 'Début Happy Hour *', 'attr' => array('class' => 'form-control')))
            ->add('timeEndHappyHour', 'time', array('label' => 'Fin Happy Hour *', 'attr' => array('class' => 'form-control')))
            ->add('day', 'choice', [
                'choices' => $days,
                'multiple' => true,
                'expanded' => true,
                'label' => 'Jour(s) *',
            ])
        ;
Run Code Online (Sandbox Code Playgroud)

$ days是一个数组:

$days = array(
            'Monday'    => 'Lundi',
            'Tuesday'   => 'Mardi',
            'Wednesday' => 'Mercredi',
            'Thursday'  => 'Jeudi',
            'Friday'    => 'Vendredi',
            'Saturday'  => 'Samedi',
            'Sunday'    => 'Dimanche',
        );
Run Code Online (Sandbox Code Playgroud)

所以,这个字段类型"选择"生成多个复选框,我需要他们以通过默认创建的窗体时进行检查.

我怎样才能做到这一点?

Tho*_*ard 14

您可以使用数据参数指定一些默认选项,在您的情况下指定一个数组,并使用您可用选项的

$builder
    ->add('day', 'choice', [
        'choices' => $days,
        'multiple' => true,
        'expanded' => true,
        'label' => 'Jour(s) *',
        'data' => array_keys($days)
    ])
;
Run Code Online (Sandbox Code Playgroud)