Php 在Symfony 2.0中使用optgroup进行选择

Php 在Symfony 2.0中使用optgroup进行选择,php,forms,symfony,html-select,optgroup,Php,Forms,Symfony,Html Select,Optgroup,在Symfony2中,selecthtml组件呈现为ChoiceType对象,该对象实际上也用于复选框和单选按钮 有人真的知道如何使用Symfony2中的optgroup选项呈现select吗 为完整起见,这里我报告一个带有optgroup标记的select示例(示例来自: 沃尔沃汽车 萨博 梅赛德斯 奥迪 此外,请注意,也有类似的帖子,但答案并不令人信服 这样做: $car_choices = array( 'Swedish Cars' => array( '

Symfony2中,
select
html组件呈现为
ChoiceType
对象,该对象实际上也用于
复选框
单选按钮

有人真的知道如何使用Symfony2中的optgroup选项呈现select吗

为完整起见,这里我报告一个带有optgroup标记的select示例(示例来自:


沃尔沃汽车
萨博
梅赛德斯
奥迪
此外,请注意,也有类似的帖子,但答案并不令人信服

这样做:

$car_choices = array(
    'Swedish Cars' => array(
        'volvo' => 'Volvo',
        'saab' => 'Saab',
    ),
    'German Cars' => array(
        'mercedes' => 'Mercedes',
        'audi' => 'Audi'
    )
);

$form = $this->createFormBuilder()
        ->add('car', 'choice', array(
            'label' => 'Choose your car',
            'choices' => $car_choices,
            ))
        ->getForm();

适用于Symfony 2.0.x

它取决于实体的定义和分组方式。假设分组是在对象中给定一个参数的情况下完成的,比如说“brand”。你可以做:

$builder->add('cars',null,数组(
“分组依据”=>“品牌”
));

它似乎在sf2.1()中已修复。您使用的是sf2.0还是sf2.1?sf2.0!但是SF2.1现在是RC2!所以,最好等到第一个2.1稳定版发布。。。我应该取消这个问题吗?不,不要关闭,在sf2.0上使用optgroup可能有一个解决方案,但我不知道。老实说,我不知道是否会迁移到Symfony2.1。我不知道移植项目和插件需要多少努力!很像symfony1.x:数组的数组。完美!使用实体的最佳选择。自我引用如何。比如类别和子类别?@Daskul对不起,我不明白你的意思。自我参照关系。您有一个实体,该实体引用了与其父实体相同的实体类型。喜欢分类。我希望所有类别都在一个数据库表中,但仍然能够建立层次结构。例如,我将创建计算机、笔记本电脑、台式机的类别,但我希望在计算机类别下创建笔记本电脑和台式机,我会说这是不可能的。主要是因为HTML中不允许嵌套
元素(请参阅“注意:Optgroup元素不能嵌套”)
$car_choices = array(
    'Swedish Cars' => array(
        'volvo' => 'Volvo',
        'saab' => 'Saab',
    ),
    'German Cars' => array(
        'mercedes' => 'Mercedes',
        'audi' => 'Audi'
    )
);

$form = $this->createFormBuilder()
        ->add('car', 'choice', array(
            'label' => 'Choose your car',
            'choices' => $car_choices,
            ))
        ->getForm();