2012-02-15 23 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); 

我真的不知道我是否真的明白你的问题