0

首先,我有这个数据库模式:

数据库模式

我有categories,其中包含products. 我也有attributes(例如“颜色”),其中包含values(例如“红色”、“绿色”等)。

所以,最后,我可以通过将an 关联attributes到aproducts的 table来分配这些,这个 table 是由 Doctrine 自动创建的,因为它们之间有一个 ManyToMany 关系。ProductAttributeValuesattribute valueproductProductAttributeValue

这样我就可以拥有(雷诺梅甘娜、福特福克斯等)的category(汽车)。products每个都可以有product多个(颜色:灰色,发动机类型:汽油等)。在最后一个示例中,颜色是,灰色是。发动机类型是另一种,汽油是一种。attributesvaluesAttributeAttributeValueAttributeAttributeValue

好的,一旦我的实体填充了数据(类别、属性、属性值和产品),我如何创建一个表单来关联attributesvalues给定的product

或多或少,表格应该是这样的:

形式

所以,当我在“汽车”category中时,我必须展示attributes属于这个的所有东西category(引擎和颜色)。同时,我必须显示所有values这些attributes(汽油、柴油、电动...用于发动机,灰色、红色、蓝色...用于颜色)。

4

1 回答 1

1

如果您尝试构建与图像上类似的表单,则您不是在寻找集合字段类型,而是使用queryBuilder寻找实体字段类型。

使用实体字段类型,您可以按 car.category对属性进行分组。

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

如果您想向现有类别或属性添加/删除/编辑多个新类别或属性,则需要集合表单类型。但是你的表格看起来会明显不同。

于 2013-06-08T04:14:38.777 回答