【问题标题】:How do I style child elements of a drop down list in a Symfony form如何在 Symfony 表单中设置下拉列表的子元素样式
【发布时间】:2020-01-19 14:27:34
【问题描述】:

我正在尝试设置 symfony 表单的下拉选项(标签和复选框)的样式,但遇到了问题。我可以为渲染的复选框和标签组设置样式,但不能单独设置每个项目(配对标签 + 复选框)。

我尝试通过以下方式设置它们的样式:

{{ form_widget(form.qualifications, {'attr': {'class':'d-block'} }) }}

但如文档中所述,这仅将样式应用于父元素(要选择的渲染选项组),而不是每个单独的选项。

这是创建小部件的 symfony 表单构建器部分

->add('qualifications', EntityType::class, [
                'class' => Tag::class,
                'multiple' => true,
                'expanded' => true,
                'required' => false,
                'placeholder' => 'Select...',
                'choices' => $this->tagsService->getTagsQualificationLevels(),
                'attr' => [
                    'class' => 'form-control-ajax-submit-on-change w-20',
                ]
            ])

我希望能够将样式应用于选择数组,但我真的不知道该怎么做。

【问题讨论】:

    标签: php css forms symfony drop-down-menu


    【解决方案1】:

    您可以使用choice_attr 选项:

        ->add('qualifications', EntityType::class, [
                    'class' => Tag::class,
                    'multiple' => true,
                    'expanded' => true,
                    'required' => false,
                    'placeholder' => 'Select...',
                    'choices' => $this->tagsService->getTagsQualificationLevels(),
                    'attr' => [
                        'class' => 'form-control-ajax-submit-on-change w-20',
                    ],
                    'choice_attr' => function($choiceValue, $key, $value) {
                        return ['class' => 'my_custom_choice_class'];
                    },
                ])
    

    【讨论】:

    • 嗨,米海,谢谢。这让我将类名应用于复选框,但对标签没有任何作用。似乎我在 scss 文件中声明的样式都没有应用于复选框。
    • 你也可以使用label_attr。在此处查看文档:symfony.com/doc/2.8/reference/forms/types/…
    • 谢谢 Mihai,这正是我要找的。​​span>
    【解决方案2】:

    也许你应该尝试在模板中循环? 我在radiobutton上遇到过类似的问题,看看:How to make RadioButton in Symfony Form?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 2012-01-15
      • 1970-01-01
      • 2017-03-02
      • 1970-01-01
      • 2018-10-25
      相关资源
      最近更新 更多