我有项目、网络链接和类别。项目有一个 Weblink,Weblink 有一个类别:
/** @Entity */
class Item {
/**
* @ManyToOne(targetEntity="Weblink", inversedBy="items")
*/
private $weblink;
}
/** @Entity */
class Weblink {
/**
* @ManyToOne(targetEntity="Category", inversedBy="weblinks")
*/
private $category;
/**
* @OneToMany(targetEntity="Item", mappedBy="weblink")
*/
private $items;
}
/** @Entity */
class Category {
/**
* @OneToMany(targetEntity="Weblink", mappedBy="category")
*/
private $weblinks;
}
到目前为止,一切都很好。现在我想介绍一个Category::$items
字段,它将包含所有具有此类别的网络链接的项目。
我尝试使用单向多对多,但失败了,因为它尝试再次创建已经存在的连接表(它是 Weblink 实体的表):
/**
* @ManyToMany(targetEntity="Item")
* @JoinTable(name="weblink",
* joinColumns = { @JoinColumn(name="category_id", referencedColumnName="id") },
* inverseJoinColumns = { @JoinColumn(name="id", referencedColumnName="weblink_id") }
* )
*/
private $items;
有没有办法映射这种关系?