加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – Doctrine2为ManyToMany关系生成两个额外的表

发布时间:2020-12-13 16:36:08 所属栏目:PHP教程 来源:网络整理
导读:问题 我正在使用Symfony2和Doctrine2(注释)建立数据库.我完全按照示例(Doctrine2 relationship documentation),但不知何故,当我更新我的架构(doctrine:schema:update –force)时,它会创建两个额外的表. 我的两个实体是文章和区,代码如下. 码 文章实体: /*
问题

我正在使用Symfony2和Doctrine2(注释)建立数据库.我完全按照示例(Doctrine2 relationship documentation),但不知何故,当我更新我的架构(doctrine:schema:update –force)时,它会创建两个额外的表.

我的两个实体是文章和区,代码如下.

文章实体:

/**
 *
 * @var DoctrineCommonCollectionsArrayCollection $districts
 *
 * @ORMManyToMany(targetEntity="District",inversedBy="articles")
 * @ORMJoinTable(name="articles_districts",*     joinColumns={@ORMJoinColumn(name="article_id",referencedColumnName="id")},*     inverseJoinColumns={@ORMJoinColumn(name="district_id",referencedColumnName="id")}
 * )
 */
protected $districts;

区实体:

/**
 *
 * @var DoctrineCommonCollectionsArrayCollection $articles
 * @ORMManyToMany(targetEntity="Article",inversedBy="districts")
 */
protected $articles;

正在创建的两个额外表是:articles_districts(我在JoinTable部分中指定的那个)和article_district(另一个以某种方式自动创建).

articles_districts表按预期工作,并在创建新条目时插入ID. article_district仍然是空的,因此很没用.我怎么摆脱它?

您的分区实体应使用mappedBy注释:
/**
 *
 * @var DoctrineCommonCollectionsArrayCollection $articles
 * @ORMManyToMany(targetEntity="Article",mappedBy="districts")
 */
protected $articles;

目前,您正在尝试为您的实体关系设置两个拥有方:http://docs.doctrine-project.org/en/2.0.x/reference/association-mapping.html#many-to-many-bidirectional

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读