【发布时间】:2019-05-24 20:20:26
【问题描述】:
简介
对于我的个人项目,我使用
- Symfony v4.2
- PHP 7.2.12
问题
我不知道如何让ChoiceType 元素显示IDs 和EMAILs 作为HTML SELECT 选项值 和索引。
示例
图片显示html select的当前状态以及来自数据库的数据(id和email)。
代码
来自数据库
($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>
我想得到什么
<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?
感谢您的想法!
【问题讨论】:
-
你好,@Jeto!它已经显示在第一个代码块中。我澄清了代码块的标题。
标签: php forms symfony select symfony4