如何在symfony2中使用具有多个不同表单小部件的实体字段类型数组

时间:2012-08-18 06:52:33

标签: php database forms symfony doctrine

我正在查看一个名为content的实体,我将在实体内容中的数组中存储有关内容(textfield1,textfield2,bgcolor等)的数据(如果这不是最好的方式请咨询我)。

我想把它放在一个数组而不是仅仅为它做单独的实体字段的原因是我将有不同的'内容模板',因此每个模板(和每个模板)的数据字段的数量和类型将是不同的当然有自己的formbuilder; ContentXType.php,contentYType.php等)。虽然一种内容类型可能只有一个文本字段,但另一种可能有10种。 我最初开始使用datafield1,datafield2等设计,但意识到这将留下一堆nullvalues并且不会真的很漂亮=)

在savetime,我将在另一个名为contentRendered的字段中为此内容生成一个html输出。

在编辑时,我将再次希望能够以不同的窗体小部件打开我的数组中的不同数据字段,例如文本字段中的textfield1,textarea中的textfield2和bgcolor(我的数组的第三个值)在colorpicker表单小部件中(我想我将使用带有jQuery颜色选择器小部件的文本字段)。

所以我的小问题是实体类型数组是否是最好的方法,我甚至可以从我的表单构建器中从数组中选择值1并将其放在一个字段中,将值2放在不同的表单字段中等?

或者我是否需要说一个名为content_data的新实体并使用关系?

或者更好的方法是为我计划使用的每种内容定义一个新实体,然后在我的主要内容表单中嵌入该内容类型的表单?

1 个答案:

答案 0 :(得分:0)

经过一些研究后,我将为模板定义一个新实体,我将在其中指定我的模板,并为每个模板的渲染设置不同的twig文件。 每个模板的实际数据(将具有可变数量的字段)将存储在序列化数组中。