我遵循此文档:http ://symfony.com/doc/current/cookbook/form/form_collections.html 。
因此,标签显示为一组文本区域,但我需要将标签显示为具有“多个”属性的 HTML“选择”元素,以便稍后保存“任务”对象,包括选定的“标签”。
也许,symfony 有一个从“标签”实体到表单的“黑魔法”转换器,反之亦然。我不知道。但是,也许,我发现了这样做的错误方法。请有人帮助我。
如果您按照教程进行操作,则只需更改类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
有关字段类型的更多信息。