Php 修复symfony2.8不推荐将影响我的数据库

Php 修复symfony2.8不推荐将影响我的数据库,php,symfony,symfony-2.8,Php,Symfony,Symfony 2.8,我需要修正一个弃用 “choice”的“choices\u as\u values”选项的值为“false” 表单类型(Symfony\Component\form\Extension\Core\type\ChoiceType)为 自版本2.8起已弃用,在3.0中将不再受支持。 将此选项设置为“true”,并翻转“选项”的内容 而不是选择 我完全理解如何修复此弃用,但翻转我选择的内容将导致与我的数据库冲突 比如, 我有一个带变速箱的汽车驾驶台。在该字段中,将始终存在a或m 在我的项目中,我有一个

我需要修正一个弃用

“choice”的“choices\u as\u values”选项的值为“false” 表单类型(Symfony\Component\form\Extension\Core\type\ChoiceType)为 自版本2.8起已弃用,在3.0中将不再受支持。 将此选项设置为“true”,并翻转“选项”的内容 而不是选择

我完全理解如何修复此弃用,但翻转我选择的内容将导致与我的数据库冲突

比如,

我有一个带变速箱的汽车驾驶台。在该字段中,将始终存在
a
m

在我的项目中,我有一个返回数组的函数

public static function enumFootType()
{
    return array(
        'a' => 'Automatic',
        'm' => 'Manual'
    );
}
因此,在我的表单中,它将显示
Automatic
,但在我的数据库中,它存储为
a
。因此,如果我要像弃用消息告诉我的那样翻转所有内容,我的数据库中会有冲突。我该如何解决这个问题?谁能帮帮我吗


我对Symfony等还是比较陌生的,所以我希望你能理解我试图解释的内容。谢谢

在表单生成器中,添加属性
'choices\u as\u values'=>true
并在选项卡中切换键和值。它应该会起作用


更多信息:

您可以传递对象数组并使用标签getter:

$builder->add('attending', ChoiceType::class, array(
    /** Type $types */
    'choices' => $types,
    'choices_as_values' => true,
    'choice_label' => 'getName',
    'choice_value' => 'getName'
));

我说我知道怎么修。我知道我必须添加该属性,并切换键和值。但我的选择来自一个实体的函数(如我在问题中所解释的),它是从数据库发送的。因此,如果我交换它们,从数据库中获取正确的信息会有问题。您尝试过吗?你所需要做的就是翻转数组,事情应该和以前一样正常。不需要选择作为值等@Cerad我交换了一个数组来测试它,这就是现在显示的错误<代码>第502行的src/FcConnectBundle/Resources/views/Consult/show.html.twig中不存在键为“否,是”的数组的键“0”