Symfony ChoiceType 选择标签不接受字符串作为值

Symfony ChoiceType choice label isn't accepting string as a value

似乎有错误或文档有误。只需在此处发布以确认这是一个错误。 ChoiceType::class

$choice1 = new \stdClass();
$choice1->name = 'Shipping';
$choice1->label = 'Shipping for you';
$choice1->code = 'xyz';

$builder
  ->add('modeOfDelivery', ChoiceType::class, [
    'choices' => [
        $choice1
    ],
    'choice_label' => 'label',
    'choice_value' => 'code'
  ])
;

当尝试使用字符串作为 choice_label 的值时,出现此 php 错误:Expected argument of type "null or callable", "string" given

在 vendor/symfony/symfony/src/Symfony/Component/Form/ChoiceList/ArrayChoiceList.php 的第 70 行 -

    public function __construct($choices, $value = null)
    {
        if (null !== $value && !is_callable($value)) {
            throw new UnexpectedTypeException($value, 'null or callable');
        }

如有任何帮助,我们将不胜感激。

缺少 choices_as_values 选项。这是 2.8 版中使用对象作为选择所必需的。