Php 我是否必须使用集合(并且仅使用集合)来基于实体(manytone)构建表单

Php 我是否必须使用集合(并且仅使用集合)来基于实体(manytone)构建表单,php,symfony,doctrine,one-to-many,many-to-one,Php,Symfony,Doctrine,One To Many,Many To One,上下文: 我希望我的用户能够更新或添加他们对一些答案的评分(由社区做出)。这可以通过网页上的站点实现,其中显示了所有答案(对应于问题),并且每个答案都将用户的分数放在一边。(并且只有用户的一个标记) 实体结构: 标记(n)(n)问题(1)(n)答案(1)(n)标记(n)(1)用户 技术方法 我从数据库中检索与问题相关的所有答案以及与这些答案相关的所有分数。然后修改我的应答对象,只保留当前用户的标记。所以(在这个阶段)一个答案只有一个分数 我的问题 我想知道我是否必须使用“集合”类型来制作我的表单

上下文:
我希望我的用户能够更新或添加他们对一些答案评分(由社区做出)。这可以通过网页上的站点实现,其中显示了所有答案(对应于问题),并且每个答案都将用户的分数放在一边。(并且只有用户的一个标记)

实体结构:
标记(n)(n)问题(1)(n)答案(1)(n)标记(n)(1)用户

技术方法
我从数据库中检索与问题相关的所有答案以及与这些答案相关的所有分数。然后修改我的应答对象,只保留当前用户的标记。所以(在这个阶段)一个答案只有一个分数

我的问题
我想知道我是否必须使用“集合”类型来制作我的表单,因为两个实体的答案和标记由一对一的关系链接,而我的当前对象(如前所述进行了更改)仅作为每个答案的一个标记。我发现使用集合要复杂得多,在这种情况下,它没有任何意义,因为对于任何答案,我只有一个属性标记

我的代码

// PART OF CLASS answertype
// --------------------------
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('marks', 'collection', array(
            'type' => new MarkType(),
        ));
}

// PART OF CLASS marktype
// ----------------------
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('marks', 'choice', array(
            'type' => new MarkType(),
        ));
}

在一对多模式中,可以对表单字段typeok skrilled使用“实体”。但当我知道我的对象应答中只有一个Mark实例时,为什么还要使用collection或entity?entity应该反映应答关系中只有一个Mark,除非在表单选项中添加multiple=true,所以这应该是您想要的?默认显示是一个下拉列表,您可以在其中选择所需的标记,但这取决于您选择显示表单的方式,可以按您希望的任何方式输入