我需要一个实体来存储包含不同类型问题的调查(扩展AbstractType
)。
所以我希望Survey
实体有一个问题列表,一些TextareaType
和一些ChoiceType
。我的实体为每个集合都有两个字段:
private $choice_questions; // Doctrine ArrayCollection mapped to entity extending ChoiceType
private $text_questions; // Doctrine ArrayCollection mapped to entity extending TextareaType
我计划将这两个字段与多对多关联映射到扩展Symfony中现有表单字段类型之一的实体:TextareaType
和ChoiceType
我可以将通用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
类中构建表单时,您认为哪种方法更好?