用于 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 关系的两个表之间具有相同的 @groups