我想在表单中显示复选框的动态列表。
到目前为止,我构建了一个嵌入复选框的静态列表的表单,并为不同语言的不同值创建了一个 Tag 实体并填充了数据库。我想用基于标签实体的动态列表替换静态复选框。
文档说我应该使用ChoiceListInterface。但它的记录真的很差。你有一个例子或一个全局逻辑解释来帮助我吗?
我想在表单中显示复选框的动态列表。
到目前为止,我构建了一个嵌入复选框的静态列表的表单,并为不同语言的不同值创建了一个 Tag 实体并填充了数据库。我想用基于标签实体的动态列表替换静态复选框。
文档说我应该使用ChoiceListInterface。但它的记录真的很差。你有一个例子或一个全局逻辑解释来帮助我吗?
您可以扩展LazyChoiceList抽象类并实现loadChoiceList()方法,创建它的服务,将其注入表单并将其设置为choice_list
选项。
最后,我使用了实体字段类型:
->add('tags', 'entity', array(
'class' => 'bndMyBundle:Tag',
'query_builder' => function(EntityRepository $er){
return $er->createQueryBuilder('t')
->orderBy('t.en', 'ASC');
},
'expanded' => true,
'multiple' => true,
'property' => 'en',
))
然后,我只需要用用户当前的语言环境替换“en”值来选择正确的语言。