3

我想在表单中显示复选框的动态列表。

到目前为止,我构建了一个嵌入复选框的静态列表的表单,并为不同语言的不同值创建了一个 Tag 实体并填充了数据库。我想用基于标签实体的动态列表替换静态复选框。

文档说我应该使用ChoiceListInterface。但它的记录真的很差。你有一个例子或一个全局逻辑解释来帮助我吗?

4

2 回答 2

2

您可以扩展LazyChoiceList抽象类并实现loadChoiceList()方法,创建它的服务,将其注入表单并将其设置为choice_list选项。

于 2012-10-29T13:04:17.733 回答
1

最后,我使用了实体字段类型:

->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”值来选择正确的语言。

于 2012-11-01T13:41:15.940 回答