介绍
我的个人项目中使用了:
- Symfony v4.2
- PHP 7.2.12
问题
我无法弄清如何使ChoiceType
元素将IDs
和EMAILs
显示为HTML SELECT
选项的值和索引。
示例
图片显示了当前从数据库中获取的id
和email
数据的html select
的状态。
代码
来自数据库的数据数组
($this->userChoices)
array:4 [
0 => array:2 [
"id" => 7
"email" => "1st@example.com"
]
1 => array:2 [
"id" => 8
"email" => "2nd@example.com"
]
2 => array:2 [
"id" => 5
"email" => "3rd@example.com"
]
3 => array:2 [
"id" => 6
"email" => "4th@example.com"
]
]
我正在了解的内容
<select id="my-select" name="my-select" class="form-control">
<optgroup label="0">
<option value="7">7</option>
<option value="1st@example.com">1st@example.com</option>
</optgroup>
<optgroup label="1">
<option value="8">8</option>
<option value="2nd@example.com">2nd@example.com</option>
</optgroup>
<optgroup label="2">
<option value="5">5</option>
<option value="3rd@example.com">3rd@example.com</option>
</optgroup>
<optgroup label="3">
<option value="6">6</option>
<option value="4th@example.comm">4th@example.com</option>
</optgroup>
</select>
What i want to get
<select id="my-select">
<option value=""> Please choose an option </option>
<option value="7">1st@example.com</option>
<option value="8">2nd@example.com</option>
<option value="5">3rd@example.com</option>
<option value="6">4th@example.com</option>
</select>
myChoiceType
的相关部分
->add('selectUser', ChoiceType::class,
[
'choices' => $this->userChoices,
'choice_value' => function ($choice)
{
return $choice;
},
'choice_label' => function ($value)
{
return $value;
},
'mapped' => false,
'expanded' => false,
'multiple' => false,
]
)
最后
我做错了什么?
如何以我想要的方式让ChoiceType
在html select
中显示data
?
谢谢您的想法!