1

我试图在我的 symfony2 项目中插入多对多关系。我已按照Symfony2-Doctrine 中的所有步骤操作:ManyToMany 关系未保存到数据库

除了 category_id 之外,所有记录都输入到项目表中...

任何的想法 ???

4

2 回答 2

0

“我已经在 items_categories 中有 category_id ...我应该从 items 表中删除列 category_id 吗??”

实际上,您的 Item 实体不应具有 category_id 属性(如表),只有“类别”,例如:

/**
  * @var array
  *
  * @ORM\ManyToMany(targetEntity="Category", inversedBy="items")
  */
protected $categories = array();
于 2012-09-12T07:55:55.327 回答
0

这是因为 category_id 不应该在 items 表中,而是在 items_categories 表中(它是多对多关系,因此 Doctrine 将创建第三个表来实现这一点)

您在 Item 实体中指定 $categories 字段(Doctrine 不会创建任何其他列,例如 category_id)。category_id 是数据库概念。在 ORM 级别上,您不使用列 - 您只使用实体属性

于 2012-09-12T09:53:37.320 回答