symfony 2.2窗体:选项字段类型中的数值


symfony 2.2 Forms: Numeric Value in Option FieldType

我想实现一个选择框,用户可以在其中选择他想要联系的支持团队。每支球队都有自己的号码,这些号码不是连续的。

所以我把这个数组添加到选择框中:

array('1' => 'Team A', '123' => 'Team B')

但选择框现在显示:

<select [...]>
<option value="0">Team A</option>
<option value="1">Team B</option>
</select>

{%block choice_widget_options%}中的{{dump(options)}}显示了以下内容:

array(2) {   
    [0] =>   class Symfony'Component'Form'Extension'Core'View'ChoiceView#1538 (3) {     public $data =>     int(0)     public $value =>     string(1) "0"     public $label =>     string(17) "Team A"   }
    [1] =>   class Symfony'Component'Form'Extension'Core'View'ChoiceView#1539 (3) {     public $data =>     int(1)     public $value =>     string(1) "1"     public $label =>     string(19) "Team B"   
}   

有人知道我该怎么解决吗?

您将密钥添加为字符串

array('1' => 'Team A', '123' => 'Team B')

更改为

array(1 => 'Team A', 123 => 'Team B')

好吧,伙计们,我发现了问题:)

我稍后使用"array_shift($choices);"从数组中删除第一个团队(默认值)。这会将键更改为0,1,2,3,4,依此类推。