Php Symfony 2条令2将inversedBy和mappedBy用于多个关系?

Php Symfony 2条令2将inversedBy和mappedBy用于多个关系?,php,symfony,doctrine-orm,doctrine,symfony-2.3,Php,Symfony,Doctrine Orm,Doctrine,Symfony 2.3,将拥有方和反向方解释成许多关系,并说: 对于许多双向关系,任何一方都可能是 拥有方(定义@JoinTable和/或不创建 使用mappedBy属性,从而使用默认联接表) 这意味着我可以不用inversedBy和mappedBy来写注释吗 指多人关系的拥有方和多人关系的反向方 例: 我可以这样写吗: 附属实体 /** * @var \Doctrine\Common\Collections\Collection * * @ORM\ManyToMany(target

将拥有方和反向方解释成许多关系,并说:

对于许多双向关系,任何一方都可能是 拥有方(定义@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="Affiliate",inversedBy="categories")
 * @ORM\JoinTable(name="category_affiliate")
 *      
 */
private $afflitiates;

类别实体

   /**
     * @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="Affiliate",inversedBy="categories")
 * @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="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="Affiliate",inversedBy="categories")
 * @ORM\JoinTable(name="category_affiliate")
 *      
 */
private $afflitiates;

在多对多关系中,你可以选择任何一方作为你的拥有方,而另一方则自动变成相反的一方。但试着检查您将频繁触发哪个实体来获取对象并管理您的拥有方

我的总结作为问题的答案:

(1) 首先,确定拥有方。例如,类别实体是拥有/映射方,因此与此$Category+JoinTable相反

(2) 因此,附属实体是反向的,因此由这个$Affiliate映射

另一种方式:

(1) 通过(2)使用(1a)+可接合

(2) 映射比(1)使用(2a)

正是这些字眼把我们弄糊涂了


D.

你为什么不试试呢?;)小提示:拥有
@ORM\JoinTable
的一方自动成为拥有方。。。因此,条令不需要使用倒置属性就可以确定拥有方,对吗?我已经尝试过了,我注意到:这两种方法都是正确的