0

我正在尝试从 Symfony 2 形式的实体列表中提供选择,如下所示:

$builder->add('users', 'entity', array(
    'class' => 'AcmeHelloBundle:Country',
    'property' => '.....',
));

问题是该属性是当前语言中国家的标签,所以它应该对语言表进行连接查询。

有没有办法在不使用“query_builder”选项来保持和之间的表单关系的情况下做到这User一点Country

4

1 回答 1

0

解决方案是使用“query_builder”选项获取数据(不要忘记“addSelect”),然后使用“property”选项获取第一个翻译:

$builder
            ->add('country', 'entity', array(
                'empty_value' => 'Select',
                'label' => 'form.country', 
                'class' => 'MySiteBundle:Pays', 
                'property' => 'fkLibTradG.trads[0].valeur', 
                'query_builder' => function(\Doctrine\ORM\EntityRepository $er) {
                    return $er->createQueryBuilder('p')
                    ->addSelect('tg')
                    ->addSelect('t')
                    ->join('p.fkLibTradG', 'tg')
                    ->join('tg.trads', 't')
                    ->where('t.fkLanguage = :language')
                    ->setParameter('language', 1)
                    ;

               }
            ))
           ;
于 2012-12-14T08:28:32.460 回答