将标签显示为多个选择

时间:2013-07-23 17:12:44

标签: forms symfony entity twig

我遵循此文档:http://symfony.com/doc/current/cookbook/form/form_collections.html

所以,标签显示为textareas组,但是我需要显示标签作为HTML'select'元素,带有'multiple'属性,用于保存'Task'对象,包括稍后选择的'Tags'。

也许,symfony有一个'black magic'转换器,从'tags'实体到形成,反之亦然。我不知道。但是,也许,我发现这样做的方法不对。有人帮帮我。

1 个答案:

答案 0 :(得分:1)

如果您按照教程操作,则只需更改buildForm课程中的TagType方法,以便name字段变为choice类型,而不是(猜测)textarea

替换:

$builder->add('name');

通过:

$builder->add('name', 'choice', array(
    'choices' => array(
       'valueA' => 'labelA',
       'valueB' => 'labelB',
       'valueC' => 'labelC',
       'valueD' => 'labelD',
       // ...
    ),
    'multiple' => true,
);

如果您的选择列表是动态的,那么最好宣布您的form type as a service

有关choice字段类型的更多信息为documented here