教义2多对多的多态关系

dee*_*een 5 polymorphism many-to-many symfony doctrine-orm

我尝试在Symfony2中与Doctrine2创建多对多的多态关系.

我想要一个与多个实体动态关联的单个实体.

我想得到以下架构:

  1. 帖子
    • id:整数,
    • name:string

======

  1. 视频
    • id - 整数
    • name - 字符串

======

  1. 标签
    • id - 整数
    • name - 字符串

======

  1. taggables
    • tag_id - 整数
    • taggable_id - 整数
    • taggable_type - 字符串

在taggables实体中:

  • tag_id 是关联标记
  • taggable_id 是关联帖子的id
  • taggable_type是关联实体的类型,即'帖子'

我希望它与"视频"相同,其中:

  • tag_id 表示关联标记的id
  • taggable_id 是关联视频的ID
  • taggable_type 是关联实体的名称,即'视频'

这一切都没有复制表.

我试过多个解决方案,但我从来没有得到这个结果:/

预先感谢您的帮助.

Jea*_*ean 2

您可以通过 OOP 使用继承来解决这个问题。

定义一个abstract class Taggable,并创建PostVideo扩展该类。然后创建一个 OneToMany from Tagto Taggable

假设您在单表继承或类表继承之间进行选择,Doctrine 会处理所有事情。

不过,我会选择班级表。

有关此主题的更多信息请参见此处