我正试图在我的symfony2项目中插入一个多对多关系。我遵循了Symfony2原则的所有步骤:ManyToMany关系不保存到数据库
除category_id外,所有记录都输入到项目表中。。。
知道吗???
这是因为category_id不应该在items表中,而是在items_categories表中(这是多对多的关系,因此Doctrine将创建第三个表来实现这一点)
您在Item实体中指定$categories字段(Doctrine不会创建任何其他列,如category_id)。category_id是数据库概念。在ORM级别上,您不使用列,只使用实体属性
"我已经在items_categories中有category_id了…我应该从items表中删除列category_id吗?"
实际上,您的Item实体不应该有category_id属性(如表所示),只有"categories",smth类似:
/**
* @var array
*
* @ORM'ManyToMany(targetEntity="Category", inversedBy="items")
*/
protected $categories = array();