Symfony - 在单个实体表单字段中组合两个属性

时间:2014-04-09 10:15:50

标签: forms symfony entity symfony-2.3

我有一个实体用于有许多不同领域的出版物作为书签,会议等。我想建立一个搜索表单,其中一个功能请求是在一个选择字段中组合两个搜索参数。到目前为止,我在表单构建器中有类似的东西:

$builder->add('booktitle', 'entity', array(
              'required' => false, 
              'label' => 'Conference/Booktitle',
              'property' => 'booktitle',
              'class' => 'indPubBundle:Publication', 
              'query_builder' => function(EntityRepository $er) {
                     return $er->createQueryBuilder('p')
                               ->groupBy('p.booktitle')
                               ->orderBy('p.booktitle', 'ASC');
                      }
              ));

基本上我将所有的书签都显示为选择字段。我现在想要的是在同一个选项字段中同时举行会议。有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:0)

“实体”字段类型是“选择”字段类型的子类型。因此,您可以通过“choices”参数提供数据。将它与一个(例如存储库)方法结合起来,该方法返回一个包含所需数据的数组,这可能是一个适合您的解决方案。

$builder->add('booktitle', 'entity', array(
            'required' => false,
            'label' => 'Conference/Booktitle',
            'class' => 'indPubBundle:Publication',
            'choices' => $this->getDoctrine()->getRepository('indPubBundle:Publication')->getData(),
        ));