用于 ManyToMany 的 Symfony Doctrine 重命名表

Posted

技术标签:

【中文标题】用于 ManyToMany 的 Symfony Doctrine 重命名表【英文标题】:Symfony Doctrine Rename table used for ManyToMany 【发布时间】:2021-06-06 13:25:26 【问题描述】:

我正在使用 symfony 5 开发一个项目。

我需要将现有数据库与现有表一起使用。 创建 ManyToMany 关系时遇到问题。例如: 对于实体 post 和 tag 的 ManyToMany 关系,请创建一个名为 post_tag 的表。

我需要将此表重命名为 link_post_tag。我可以在 sql 数据库中重命名它(简单),但是我需要在 symfony 中修改什么才能使其工作。因为 symfony 仍在寻找 post_tag 表。

我查看了学说和 symfony 文档,但一无所获。

谢谢

【问题讨论】:

【参考方案1】:

@ORM\JoinTable。 Doctrine 文档在这里解释它:https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/association-mapping.html#many-to-many-unidirectional

/**
     * Many Users have Many Groups.
     * @ManyToMany(targetEntity="Group")
     * @JoinTable(name="users_groups",
     *      joinColumns=@JoinColumn(name="user_id", referencedColumnName="id"),
     *      inverseJoinColumns=@JoinColumn(name="group_id", referencedColumnName="id")
     *      )
     */
    private $groups;

【讨论】:

以上是关于用于 ManyToMany 的 Symfony Doctrine 重命名表的主要内容,如果未能解决你的问题,请参考以下文章

Symfony 的 make:entity 命令创建的 ManyToMany 关系之间的握手

Symfony2-Doctrine:ManyToMany 关系未保存到数据库

Symfony数据夹具与ManyToMany的关系

Symfony 在具有 ManyToMany 关系的两个表之间具有相同的 @groups

Doctrine Symfony ManyToMany 将表作为 OneToMany 连接到其他表

Symfony2 2.3.7 -Doctrine 2.4.1:ManyToMany 关系未保存到数据库