我正在尝试显示带有“select”的表单,其中是查询中的“选项”。
$results = $conn->query(" select gsm, name from Contact");
$row = $results->fetchAll();
之后:我尝试使用此
foreach($row as $lign)
$centretechnique[$lign['gsm']] = $lign['name'];
和formbuilder
$form->add('centretechnique', 'choice', array('required' => false, 'error_bubbling' => true, "empty_value" => "Choisir ", 'choices' => $centretechnique));
我想显示一个选项选项列表,其值为= gsm,显示的值为name
这个方法让我显示,但问题是,如果我有重复选项,只显示选项。
例如,请求的结果是
array (size=2)
0 =>
array (size=2)
'gsm' => string '628436515' (length=9)
'name' => string 'name1' (length=7)
1 =>
array (size=2)
'gsm' => string '628436515' (length=9)
'name' => string 'name 2' (length=4)
只会显示一个选项。
任何帮助,请
答案 0 :(得分:1)
如果您想从数据库中填充选择表单类型,那么您应该使用Property。
这样的事情:
$form->add(
'centretechnique',
'entity',
array(
'class' => 'MyBundle:Contact',
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('c')
->orderBy('c.name', 'ASC');
},
'choice_label' => 'name',
'choice_value' => 'gsm',
'multiple' => false,
'expanded' => false,
'required' => false,
)
)
答案 1 :(得分:0)
通过建立您的选择,您可以:
$centretechnique[$lign['gsm']] = $lign['name'];
所以您的代码会覆盖第二个选择,因为您使用相同的密钥两次...