3

我需要修复一个弃用;

“choice”表单类型(Symfony\Component\Form\Extension\Core\Type\ChoiceType)的“choices_as_values”选项的值“false”自 2.8 版起已弃用,3.0 版将不再支持。将此选项设置为“true”并翻转“choices”选项的内容。

我完全理解如何解决这个弃用问题,但是通过翻转我选择的内容会导致与我的数据库发生冲突。

例如;

我有一个带有传输字段的汽车表。在那个字段中,总会有一个a或一个m

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

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

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

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

4

2 回答 2

5

您可以传递对象数组并使用标签获取器:

$builder->add('attending', ChoiceType::class, array(
    /** Type $types */
    'choices' => $types,
    'choices_as_values' => true,
    'choice_label' => 'getName',
    'choice_value' => 'getName'
));
于 2016-02-29T11:52:46.983 回答
2

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

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

于 2016-02-29T11:18:04.170 回答