Symfony 表单 - 来自 class 个属性的 choiceType

Symfony form - choiceType from class attributes

我有一个 class 选项,有很多属性,嵌套在 B class

class Options {    
    private $foo;
    private $bar;    
    // getter setters ..
}

class B {
    private $baz;
    private $options; // Option class
}

有没有办法用 B.options 属性的复选框创建 ChoiceType?

$options = new Options();
$b = new B();
$b->setOptions($options);

$form = $this->createForm(MyType::class, $b, []);

// ...

$builder->add('options', ??,[
        // ??
    ];

这种情况下的最佳做法是什么。

您想embed a collection of forms。 Symfony links 表单中的实体非常好。检查 link 文档。

只需使用 ChoiceType。如果 expandedmultiple 选项设置为 true,将呈现复选框。

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

http://symfony.com/doc/current/reference/forms/types/choice.html#expanded