首页 > 解决方案 > 如何在不影响现有数据的情况下将单值 ChoiceType 字段更改为多值字段?

问题描述

目前,我有一个Choicetype具有单个值的表单字段。但现在我希望它是多值的。我multiple => true为那个 FormType 添加了 , 但它给出了如下错误:

未捕获的 PHP 异常 Symfony\Component\Form\Exception\TransformationFailedException:“无法转换属性路径“[facebook_lead_id]”的值:需要一个数组。” 在 /app/vendor/symfony/form/Form.php 第 1087 行 {"exception":"[object] (Symfony\Component\Form\Exception\TransformationFailedException(code: 0): Unable to transform value for property path "[facebook_lead_id ]": 需要一个数组。在 /app/vendor/symfony/form/Form.php:1087, Symfony\Component\Form\Exception\TransformationFailedException(code: 0): 需要一个数组。在 /app/vendor/symfony/表单/扩展/核心/DataTransformer/ChoicesToValuesTransformer.php:42)"} []

关于如何在不影响现有数据的情况下将单值转换为多个值的任何想法。

标签: symfony

解决方案


要实现您想要的多选,您必须将属性设置为multiple和。expandedtrue

$builder->add('fruits', ChoiceType::class, [
    'multiple' => true,
    'expanded' => true
    'choices'  => [
        'bananas' => 1,
        'apples' => 2,
        'oranges' => false,
    ],
]);

详情在这里


推荐阅读