2012-12-11 23 views
0

我試圖以提供從實體列表中選擇一個Symfony的2形式是這樣的:填補與翻譯標籤實體的組合框從鏈接表進來的Symfony 2種形式

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

的問題是,屬性是當前語言中國家的標籤,所以它應該在語言表上進行連接查詢。

有沒有辦法做到這一點,而不使用「query_builder」選項來保持UserCountry之間的形式關係?

+0

你使用gedmo/DoctrineExtension? –

+0

不,我的數據庫模式已經制作好了,我不希望教條把他的東西放在這裏。 – Leto

回答

0

解決辦法就是取得與「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(\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) 
        ; 

       } 
      )) 
      ;