2012-02-15 25 views
2

我對Symfony2相當陌生,並且正在使用表單構建器嘗試從數據庫創建下拉菜單。我可以在沒有問題的情況下填充下拉菜單,但每個選項值屬性只需在設置爲選項文本或無值屬性時設置爲數字,但在有關設置值的文檔中找不到任何內容。在下拉菜單中設置value屬性Symfony2

$builder->add('institution', 'entity', array(
    enter code here  'class' => 'JacksonFramesStoreBundle:Institution', 
     'query_builder' => function(EntityRepository $er) { 
          return $er->createQueryBuilder('i') 
           ->where('i.type = :type') 
           ->setParameter('type', 'University'); 
          }, 
     'empty_value' => 'Select:', 
     'empty_data' => null, 
    )); 

此輸出:

<select id="selectUniversity" name="selectUniversity"> 
    <option value="0"></option> 
    <option value="1">Australian Catholic University</option> 
    <option value="2">Australian National University</option> 
    <option value="3">Bond University</option> 
</select> 

EDIT - 這是樹枝

<!-- University Panel --> 
<div id="uniPanel" style="display:none;"> 
    <p>{{ form_label(form.institution) }}<br /> 
     <span class="inputLine"> 
      {{ form_errors(form.institution) }} 
      {{ form_widget(form.institution) }} 
     </span> 
    </p> 
</div> 
+0

從你使用的樹枝模板添加代碼。 – jkucharovic 2012-02-15 08:12:23

+0

有什麼問題?提交表格時,所選值將自動轉換爲相關實體。 – 2012-02-16 16:06:55

+0

@AlessandroDesantis,但使用JavaScript時,它不會解決問題 – 2016-03-20 12:37:24

回答

0

在控制器的有關部分,if ($form->isValid())之後,嘗試使用:

$value = ($entity->getInstitution()) ? $entity->getInstitution()->getId() : null); 

我真的不知道我是否真的明白你的問題