【发布时间】:2013-12-04 18:50:01
【问题描述】:
成Doctrine 2 Documentation解释Owning Side和Inverse Side成ManyToMany关系并表示:
对于多对多双向关系,任何一方都可能是 拥有方(定义 @JoinTable 和/或不 使用 mappedBy 属性,因此使用默认连接表)。
这是否意味着我可以在不使用 inversedBy 和 mappedBy 的情况下编写注释 要参考多对多关系的拥有方和多对多关系的反面?
例如:
我可以这样写吗:
附属实体
/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\ManyToMany(targetEntity="Category")
*
*/
private $categories;
和
类别实体
/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\ManyToMany(targetEntity="Affiliate")
* @ORM\JoinTable(name="category_affiliate")
*
*/
private $afflitiates;
而不是这样写:
附属实体
/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\ManyToMany(targetEntity="Category", mappedBy="afflitiates")
*
*/
private $categories;
和
类别实体
/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\ManyToMany(targetEntity="Affiliate",inversedBy="categories")
* @ORM\JoinTable(name="category_affiliate")
*
*/
private $afflitiates;
【问题讨论】:
-
你为什么不试试看呢? ;) 小提示:拥有
@ORM\JoinTable的一方自动成为拥有 方......所以Doctrine 无需inversedBy属性就可以确定拥有方,对吧? -
我试过了,我注意到:这两种方法都是正确的
标签: php symfony doctrine-orm doctrine symfony-2.3