具有自定义不可选择分隔符的 Symfony 实体字段类型

Symfony entity field type with custom unselectable separators

假设我有一个实体 City,它的 cityName 也有优先级 1、2 或 3。我需要创建一个 select 框,其中的城市按优先级(升序)排序,并在之前添加一个分隔符优先级变化。该列表应如下所示:

---Big cities:
bigCity1
bigCity2
bigCity3
---Smaller cities:
smallerCity1
smallerCity2
smallerCity3
smallerCity4
---Smallest cities:
smallestCity1
smallestCity2
....

那些以 --- 开头的分隔符不应该 select 可用。 目前我的 formType 看起来像这样:

class SelectCityFormType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('city', 'entity', array(
                'class' => 'MainBundle:City',
                'property' => 'city',
            ))
            ->add('Select', 'submit');
    }
    public function getName()
    {
        return 'selectCityForm';
    }
}

如何实现我想要的?

您可以按指定字段使用 optgroup 标签 to group 个城市。只需将 'group_by' => 'field_name' 选项添加到城市字段。