学说中的多对多关联到现有的Symfony表单字段类型

时间:2017-07-11 20:25:42

标签: php symfony doctrine-orm

我需要一个实体来存储包含不同类型问题的调查(扩展AbstractType)。

方法1

所以我希望Survey实体有一个问题列表,一些TextareaType和一些ChoiceType。我的实体为每个集合都有两个字段:

private $choice_questions; // Doctrine ArrayCollection mapped to entity extending ChoiceType
private $text_questions; // Doctrine ArrayCollection mapped to entity extending TextareaType

我计划将这两个字段与多对多关联映射到扩展Symfony中现有表单字段类型之一的实体:TextareaTypeChoiceType

方法2

我可以将通用Questions实体作为custom form field type,其$type字段用于在getParent()方法中定义字段类型:

public function getParent()
{
    if($this->type == 1)
    return ChoiceType::class;
    else if($this->type == 2)
    return TextareaType::class;
}

Survey实体中只有一个字段存储问题列表,该列表映射到此通用Questions实体:

private $questions; // Doctrine ArrayCollection mapped to Questions entity (many-to-many)

Survey类中构建表单时,您认为哪种方法更好?

0 个答案:

没有答案