2013-08-06 105 views
0

我要與選定的線路使用Doctrine2/Symfony2的的Symfony 2選擇與所選線路

我的表單添加 <select>形式

我怎樣才能與實體返回選擇一個值?

這是我的代碼:

$content = new Content(); 
    $form = $this->createFormBuilder($content) 
      ->add('idcontent', 'entity', array(
       'class' => 'SdmSiteInterBundle:Activite', 
       'query_builder' => function($repository) { 
        return $repository->createQueryBuilder('c')->orderBy('c.name', 'ASC'); 
       }, 
       'property' => 'name', 
       'data' => 82, 
      )) 
      ->getForm(); 

要更多解釋,我想這樣的結果:

<select> 
<option value="25">activity name 01</option> 
**<option value="82" selected="selected">activity name 02</option>** 
<option value="214">activity name 03</option> 
..... 
</select> 
+0

根據我正在閱讀的內容,您必須將相關實體作爲數據選項傳遞,可能是錯誤的。 – Moylin

+0

怎麼樣?它正確接受query_builder選項 –

+0

「QueryBuilder」格式看看這個類似的主題:http://stackoverflow.com/questions/11999745/how-to-set-up-default-value-in-symfony2-select-box -with-data-from-database/12000289#12000289 [1]:http://stackoverflow.com/questions/11999745/how-to-set-up-default-value-in-symfony2-select-box -with-data-from-database/12000289#12000289 – Thierry

回答

0

老實說,我沒有完全理解你的問題,但如果你想知道如何設置「默認」組合框的值,然後像通常那樣設置屬性來初始化對象。

$content = new Content(); 
$content->setActivite($someActivite); 

而且,在你的榜樣,你的類型$contentidcontent領域創建一個表單字段時,你可能要做到以下幾點:

$content = new Content(); 
$content->setActivite($someActivite); 

$form = $this->createFormBuilder($content) 
     ->add('activite', 'entity', array(
      'class' => 'SdmSiteInterBundle:Activite', 
      'query_builder' => function($repository) { 
       return $repository->createQueryBuilder('c')->orderBy('c.name', 'ASC'); 
      }, 
      'property' => 'name' 
     )) 
     ->getForm(); 

有關詳細信息,請參見

http://symfony.com/doc/current/reference/forms/types/entity.html
+0

這就是我的意思,但它不工作:對不起我的英語 –

+0

我已經添加了一些結果我想在問題集團的解釋..謝謝你或幫幫我 –