教义2多对多的多态关系

时间:2014-11-22 00:20:09

标签: symfony doctrine-orm many-to-many polymorphism

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

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

我想得到以下架构:

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

    1. 视频
      • id - 整数
      • name - string
    2. ==

      1. 代码
        • id - 整数
        • name - string
      2. ==

        1. taggables
          • tag_id - 整数
          • taggable_id - 整数
          • taggable_type - string
        2. 在taggables实体中:

          • tag_id 是关联标记
          • taggable_id 是关联帖子的ID
          • taggable_type 是关联实体的类型,即“帖子”

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

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

          并且所有这些都没有重复表格。

          我测试了多种解决方案,但我从未得到过这样的结果:/

          提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

你可以使用继承来解决这个问题。

定义abstract class Taggable,并使PostVideo扩展该类。然后从TagTaggable创建OneToMany。

Doctrine将负责任务,假设您在单表继承或类表继承之间进行选择。

我会选择Class Table。

有关此主题的更多信息here