用来自Symfony 2表单中链接表的翻译标签填充实体的组合框



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

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

问题是该属性是当前语言中国家/地区的标签,因此它应该使用语言表上的联接进行查询。

有没有办法在不使用"query_builder"选项来保持UserCountry之间的形式关系的情况下做到这一点?

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

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

最新更新