Symfony使用自定义optgroup

时间:2018-05-16 16:56:42

标签: php symfony symfony-forms symfony-2.8

我有一个Symfony表单,其中包含从实体列出其选项的选择框。但是如何列出我手动指定的<optgroup>内的数据库记录(选项)(optgroup的标签)?

$form = $this->createFormBuilder()
    ->add('type', EntityType::class, array(
        'required' => true, 
        'class' => 'AppBundle:Types', 
        'choice_label' => 'name', 
        'empty_value' => 'Type',
    ));

optgroup标签是“什么是类型?”我需要在此optgroup中列出上述数据。

2 个答案:

答案 0 :(得分:1)

这可以通过使用group_by选项来解决:

$form = $this->createFormBuilder()
    ->add('type', EntityType::class, array(
        'required' => true, 
        'class' => 'AppBundle:Types', 
        'choice_label' => 'name', 
        'empty_value' => 'Type',
        'group_by' => 'group',
));

您应该向AppBundle添加一个字段:以例如&#39; group&#39;命名的类型。

答案 1 :(得分:0)

如果这是静态字符串的简单翻译,我建议您手动将字段包装在视图中的optgroup中(例如,您可以使用表单主题),并使用翻译后的字符串设置标签。在我看来这会更有意义。

如果标签是动态的,那么我认为这是您正在寻找的: Symfony Doctrine - how to generate optgroup select form