我使用的是symfony 3.0和doctrine orm 2.5,但是当关系产品和产品属性时,我有一些困难。
假设我有名为ad product , product_attribute 和 attribute 的数据库表。
首先,每个产品都可以包含许多 product_attributes 。
表 product_attribute 可以与许多产品相关联,但每个 product_id 都有唯一的属性和值。
属性表实际上是不可知的,并且不知道 product 和 product_attribute 的存在,但 product_attribute 应该是存在的关系中的 attribute_id 。
我该怎么做?我尝试使用数据透视表" product_attribute"来创建产品和属性之间的关系,但这不会保留属性的值......
答案 0 :(得分:1)
你的问题有点模糊,没有代码。但是,如果您的产品持久存在,则意味着您致电该原则经理以保留该产品。这意味着你正在做这样的事情:
$this->getDoctrine()->getManager()->persist($product)
然后您可能添加了product_attribute和属性本身。要记住的关键是你必须将要保存的每个对象保存到数据库中,如下所示:
$this->getDoctrine()->getManager()->persist($product);
/* Add product attribute */
/* Add attribute to product attribute */
$this->getDoctrine()->getManager()->persist($productAttribute);
$this->getDoctrine()->getManager()->persist($attribute);
/* save to database */
$this->getDoctrine()->getManager()->flush();
您不能只持久保存孩子所需的父对象。