我有两个实体:产品和类别。这应该是多对多的关系,因为每个类别可以有很多产品,每个产品可以属于很多类别。而且,我需要从我的产品访问类别,还需要知道一个类别的产品。
这是我的代码。
在我的产品实体中:
/**
* @ORMManyToMany(targetEntity="AppEntityCategory", cascade={"persist"})
*/
private $categories;
在我的类别实体:
/**
* @ORMManyToMany(targetEntity="AppEntityProduct", cascade={"persist"})
* @ApiSubresource
*/
private $products;
问题是,当我进行方案更新时,Doctrine会生成2个表:category_product
和product_category
我如何处理一张桌子?
这很容易。
/**
* @ORMManyToMany(targetEntity="AppEntityCategory", inversedBy="products")
*/
private $categories;
和
/**
* @ORMManyToMany(targetEntity="AppEntityProduct", mapped_by="categories")
* @ApiSubresource
*/
private $products;
不要忘记在构造函数中初始化,cascade="persist"
是默认的AFAIK-