如何构建显示集合集合的表单?

时间:2013-06-07 16:41:03

标签: symfony symfony-2.2

首先,我有这个数据库架构:

DB schema

我有categories,其中包含products。 我还有attributes(例如“color”),其中包含values(例如“red”,“green”等)。

所以,最后,我可以通过表格attributes将这些products分配到ProductAttributeValues,将attribute valueproduct相关联,此表格为由Doctrine自动创建,因为ProductAttributeValue之间存在ManyToMany关系。

这样我可以拥有category(汽车)products(雷诺梅甘娜,福特福克斯等)。每个product可以有多个attributes及其values(颜色:灰色,引擎类型:汽油等)。在最后一个示例中,颜色为Attribute,灰色为AttributeValue。引擎类型是另一个Attribute,汽油是AttributeValue

好的,一旦我的实体填满了数据(类别,属性,属性值和产品),我如何创建表单以将attributesvalues与给定的{{product相关联1}}?

或多或少,表单应如下所示:

form

因此,当我在“汽车”category中时,我必须显示属于此attributes的所有category(引擎和颜色)。同时,我必须为values显示所有attributes(汽油,柴油,电动......用于发动机,灰色,红色,蓝色......用于颜色)。

1 个答案:

答案 0 :(得分:1)

如果您正在尝试构建类似图片上的表单,则不是要查找集合字段类型,而是查找带有 queryBuilder entity字段类型。

使用实体字段类型,您可以通过ie car.category group 属性

...或者您可以使用两个实体字段并过滤结果(即仅显示类别气体的属性),用于字段的queryBuilder中的另一个选择框。最好通过在queryBuilder的 - > where()语句中使用表单构建器中的注入类别属性来实现。

如果您想要添加/删除/编辑多个新类别或属性到现有类别,则需要collection form-type。但那时你的表格看起来会有所不同。