Symfony 3 奇怪的 "choice" 错误

Symfony 3 weird "choice" error

我正在尝试在 Symfony 3 中构建一个复选框列表。 此代码:

    $choices = [
        'a' => 'fsssssss',
    ];

    $builder->add('memberships', ChoiceType::class, [
        'choices' => $choices,
        'expanded' => true,
        'multiple' => false
    ]);

Returns 出现以下错误:可捕获的致命错误:class Doctrine\ORM\PersistentCollection 的对象无法转换为 [=25 中的字符串 =].php(第 73 行)

如果我再添加两个选项,错误就会消失并且字段会正确显示:

    $choices = [
        'a' => 'fsssssss',
        'd' => 'fsssssss',
        'g' => 'fsssssss',
    ];

    $builder->add('memberships', ChoiceType::class, [
        'choices' => $choices,
        'expanded' => true,
        'multiple' => false
    ]);

实际上,有许多组合有效,也有许多组合无效;我没有看到任何模式。

我是不是做错了什么?我需要清除某种缓存吗?

只是为了结束这个问题:

如果您使用带有 data_class 选项的表单,并且表单域代表实体的 属性,您可以使用 EntityType:

    $builder->add('memberships', EntityType::class, [
        'class'     => MyClass::class,
        'choices'   => $choices,
        'expanded'  => true,
        'multiple'  => false
    ]);