tho*_*uts 8 php mysql symfony doctrine-orm
我正在使用Symfony2和Doctrine2(注释)建立数据库.我完全按照示例(Doctrine2关系文档),但不知何故,当我更新我的模式(doctrine:schema:update --force)时,它创建了两个额外的表.
我的两个实体是文章和区,代码如下.
/**
*
* @var \Doctrine\Common\Collections\ArrayCollection $districts
*
* @ORM\ManyToMany(targetEntity="District", inversedBy="articles")
* @ORM\JoinTable(name="articles_districts",
* joinColumns={@ORM\JoinColumn(name="article_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="district_id", referencedColumnName="id")}
* )
*/
protected $districts;
Run Code Online (Sandbox Code Playgroud)
/**
*
* @var \Doctrine\Common\Collections\ArrayCollection $articles
* @ORM\ManyToMany(targetEntity="Article", inversedBy="districts")
*/
protected $articles;
Run Code Online (Sandbox Code Playgroud)
正在创建的两个额外表是:( articles_districts我在JoinTable部分中指定的那个)和article_district(另一个以某种方式自动创建的表).
该articles_districts表按预期工作,并在创建新条目时插入ID.在article_district保持为空,因此,没什么用.我怎么摆脱它?
Luk*_*uke 14
您的分区实体应使用mappedBy注释:
/**
*
* @var \Doctrine\Common\Collections\ArrayCollection $articles
* @ORM\ManyToMany(targetEntity="Article", mappedBy="districts")
*/
protected $articles;
Run Code Online (Sandbox Code Playgroud)
目前,您正试图在实体关系中拥有两个拥有者:http://docs.doctrine-project.org/en/2.0.x/reference/association-mapping.html#many-to-many-bidirectional