Symfony ChoiceType 中的图标

Icons in a Symfony ChoiceType

我有一个 Symfony 表单,我尝试用不同的图标显示 SelectField

我的 ChoiceType 看起来像这样

  ->add('icon', ChoiceType::class, [
            'choices'  => [
                '' => '',
                '' => '',
            ],
            'mapped' => false,
        ])

我的CSS看起来像这样

select { font-family: 'FontAwesome', Verdana }

当我渲染一个正常的 select div 它工作得很好,我可以看到图标。

但是当通过 Symfony Form 尝试时它不起作用。我已经阅读了其他有同样问题的线程。一种解决方案是将 twig 的自动转义设置为 false 并尝试使用原始标签。但我仍然只看到纯文本“”,而不是 Select 框中的图标。

一个选项,你可以使用html_entity_decode函数

public function buildForm(FormBuilderInterface $builder, array $options)
{
    // prepare an array with icons
    $icons =  [
        '',
        '',
    ];
    
    // decode our icons
    $icons = array_flip(array_map('html_entity_decode',$icons));
    
    // add field to formBuilder
    $builder->add('icon', ChoiceType::class, [
        'choices'  => $icons,
        'mapped' => false,
    ]);

}

添加css

select { font-family: 'FontAwesome'}