Symfony 3-将样式添加到FormType(Entity :: class => choiceLabels)

时间:2019-05-15 09:40:37

标签: php forms symfony types entity

我有一个formType包含EntityType ::类。 这是表单中可供选择的用户类型的列表。

->add('typeUser',EntityType::class, array(
            'required' => true,
            'class'=>'Site\PagesBundle\Entity\TypeUser',
            'choice_label'=>'typeUtilisateur',
            'expanded'=>true,
            'multiple'=>true,
            'empty_data' => 'Veuillez sélectionner au moins 1 type',
        ));

我希望我可以给这些选择一个“风格”。例如,我希望它们与复选框保持一定距离。

因此,我必须在样式中添加样式(以左边距为例):

'choice_label'=>'typeUtilisateur',

在FormType中可以吗?

还是应该在我的树枝文件中显示?在这种情况下,我该怎么办?

感谢您的帮助!

编辑:

->add('typeUser',EntityType::class, array(
            'required' => true,
            'class'=>'Site\PagesBundle\Entity\TypeUser',
            'choice_label'=>('typeUtilisateur' => 'attr' => array( 'style' => 'margin-left:15px')) ,
            'expanded'=>true,
            'multiple'=>true,
            'empty_data' => 'Veuillez sélectionner au moins 1 type',
        ));

2 个答案:

答案 0 :(得分:0)

有几种方法可以设置表单字段的样式。在下面查看其中的一些:

选项1:将一个类属性添加到表单构建器中的字段

$builder
    ->add('example', EntityType::class, [
        'class' => FooBar::class,
        'attr' => [
             'class' => 'my-example-class'
        ]
    ])

选项2:在表单模板中指定一个类

{{ form_widget(form.fooBar, {'attr': {'class': 'form-control'}}) }}

您可以特定于选择,请参见此链接here,其中显示了向选择中添加类属性。

答案 1 :(得分:0)

我认为正确的方法是使用 attr 键,通过该键可以设置自定义的 class =“” 用于您的字段

->add('typeUser',EntityType::class, array(
     'attr' => [
         'class' => 'YOUR_CHOICE_CLASS',
     ],
     'required' => true,
     'class'=>'Site\PagesBundle\Entity\TypeUser',
     'expanded'=>true,
     'multiple'=>true,
     'empty_data' => 'Veuillez sélectionner au moins 1 type',
));

然后,可以在CSS文件中定义所需的样式