首先,我有这个数据库架构:
我有categories
,其中包含products
。
我还有attributes
(例如“color”),其中包含values
(例如“red”,“green”等)。
所以,最后,我可以通过表格attributes
将这些products
分配到ProductAttributeValues
,将attribute value
与product
相关联,此表格为由Doctrine自动创建,因为Product
和AttributeValue
之间存在ManyToMany关系。
这样我可以拥有category
(汽车)products
(雷诺梅甘娜,福特福克斯等)。每个product
可以有多个attributes
及其values
(颜色:灰色,引擎类型:汽油等)。在最后一个示例中,颜色为Attribute
,灰色为AttributeValue
。引擎类型是另一个Attribute
,汽油是AttributeValue
。
好的,一旦我的实体填满了数据(类别,属性,属性值和产品),我如何创建表单以将attributes
和values
与给定的{{product
相关联1}}?
或多或少,表单应如下所示:
因此,当我在“汽车”category
中时,我必须显示属于此attributes
的所有category
(引擎和颜色)。同时,我必须为values
显示所有attributes
(汽油,柴油,电动......用于发动机,灰色,红色,蓝色......用于颜色)。
答案 0 :(得分:1)
如果您正在尝试构建类似图片上的表单,则不是要查找集合字段类型,而是查找带有 queryBuilder 的entity字段类型。
使用实体字段类型,您可以通过ie car.category group 属性。
...或者您可以使用两个实体字段并过滤结果(即仅显示类别气体的属性),用于字段的queryBuilder中的另一个选择框。最好通过在queryBuilder的 - > where()语句中使用表单构建器中的注入类别属性来实现。
如果您想要添加/删除/编辑多个新类别或属性到现有类别,则需要collection form-type。但那时你的表格看起来会有所不同。