我刚刚开始研究现有的Symfony 2.7项目,该项目现在应该准备好更新到Symfony 2.8 .
现在我遇到了 ChoiceType
的以下information from the docs:
在所有情况下,choices_as_values必须设置为true . 这激活了Symfony 2.7中引入的“新”选择类型API . 如果省略此选项(或将其设置为false),您将激活旧的API,该API已弃用,将在3.0中删除 . 要阅读有关旧API的信息,请阅读较旧版本的文档 .
检查项目中的 'choice'
表单字段时,我注意到,它们都没有使用 'choices_as_values' => true
. 我认为,当项目从Symfony 2.6更新到2.7之前,这个问题很简单 .
因此,似乎所有 'choice'
表单字段仍然使用"old" API . 为了更新并为Symfony 3做好准备,我想改变它 .
What exactly do I have to do?
当比较Symfony 2.6和2.7的 ChoiceType
文档时,可以看到:
-
...
choice_list
在2.7中已弃用 -
... 2.7有几个新选项,如
choice_loader
,choice_name
等
由于 choice_list
未在项目中使用,因此此更改不应产生任何影响, should it?
新选项很不错,但是如果尚未使用,那么在更新后也应该没有问题, right?
我唯一关心的是,现有的选择可能会改变他们的行为 .
我认识到'options'选项的键和值的顺序已被切换:
// 2.6
'choices' => array(
'm' => 'Male',
'f' => 'Female',
),
// 2.7
'choices' => array(
'Male' => m,
'Female' => f,
),
Is this right? 这将是一个很大的变化 . 但是,添加 'choices_as_values' => true
选项(==激活"new" API)和 not 更改 choices
选项时, I do not see any difference in the generated HTML code.
我比较了2.6和2.7文档,但没有发现其他变化,但这并不意味着没有其他变化:-)
So, are there other changes I have to consider?