在Symfony中,可以通过自定义表单类型来将choiceType的值显示为颜色。以下是实现的步骤:
namespace App\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\OptionsResolver\OptionsResolver;
class ColorChoiceType extends AbstractType
{
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'choices' => [
'Red' => 'red',
'Blue' => 'blue',
'Green' => 'green',
// 添加其他颜色选项
],
'expanded' => true,
'multiple' => false,
'choice_attr' => function ($choice, $key, $value) {
return ['style' => 'background-color:'.$value.';'];
},
]);
}
public function getParent()
{
return ChoiceType::class;
}
}
use App\Form\Type\ColorChoiceType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
class YourFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
// 其他字段
->add('color', ColorChoiceType::class, [
'label' => 'Choose a color',
]);
}
}
{{ form_start(form) }}
{{ form_row(form.color) }}
{# 渲染其他字段 #}
{{ form_end(form) }}
这样,你就可以在Symfony中将choiceType的值显示为颜色了。对于其他问题或需要更多帮助,请参考Symfony官方文档:https://symfony.com/doc/current/forms.html。
领取专属 10元无门槛券
手把手带您无忧上云