修复symfony2.8弃用将影响我的数据库

时间:2016-02-29 11:08:17

标签: php symfony symfony-2.8

我需要修改弃用;

  

值" false"对于" choices_as_values" "选项的选项"   表单类型(Symfony \ Component \ Form \ Extension \ Core \ Type \ ChoiceType)是   自2.8版以来已弃用,3.0版将不再支持。   将此选项设置为" true"翻转"选项的内容"   相反的选择。

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

例如;

我有一个带有传输区域的汽车桌子。在该字段中,始终会有am

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

public static function enumFootType()
{
    return array(
        'a' => 'Automatic',
        'm' => 'Manual'
    );
}

因此,在我的表单中,它会显示Automatic,但在我的数据库中,它会存储为a。因此,如果我要翻转所有内容,例如弃用消息告诉我这样做,我的数据库中就会出现冲突。我该怎么解决这个问题?有人可以帮帮我吗?

我仍然是Symfony等的新手,所以我希望你能理解我试图解释的内容。谢谢

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:2)

在表单构建器中,添加属性'choices_as_values' => true并在选项卡中切换键和值。它应该工作。

更多信息:http://symfony.com/blog/new-in-symfony-2-7-choice-form-type-refactorization