Symfony 3奇怪的“选择”错误

时间:2017-06-14 11:21:02

标签: symfony symfony-forms

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

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

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

返回以下错误:可捕获的致命错误:类/ Docmine \ ORM \ PersistentCollection的对象无法转换为vendor / symfony / symfony / src / Symfony / Component / Form / ChoiceList /中的字符串 ArrayChoiceList.php(第73行)

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

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

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

实际上,有许多组合可行,许多组合不起作用;我没有看到任何模式。

我做错了吗?我需要清除某种缓存吗?

1 个答案:

答案 0 :(得分:0)

关闭此问题:

如果您使用带有data_class选项的表单,并且表单字段表示应该通过选择选择的实体的属性,则可以使用EntityType

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