0

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

因此,标签显示为一组文本区域,但我需要将标签显示为具有“多个”属性的 HTML“选择”元素,以便稍后保存“任务”对象,包括选定的“标签”。

也许,symfony 有一个从“标签”实体到表单的“黑魔法”转换器,反之亦然。我不知道。但是,也许,我发现了这样做的错误方法。请有人帮助我。

4

1 回答 1

1

如果您按照教程进行操作,则只需更改类buildForm上的方法TagType,以便该name字段成为choice类型而不是 (guessed) textarea

代替 :

$builder->add('name');

经过 :

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

如果您的选择列表是动态的,一个好的做法是将您的表单类型声明为服务

此处记录了choice有关字段类型的更多信息。

于 2013-07-23T17:34:15.440 回答