【问题标题】:Do Many-To-Many relationships required a "join entity" in Symfony 2 / Doctrine?多对多关系是否需要 Symfony 2 / Doctrine 中的“连接实体”?
【发布时间】:2012-05-07 23:36:56
【问题描述】:

我开始了解 Symfony 2 和 Doctrine 是如何处理多对多关系的,但我被一些东西困住了,我似乎已经阅读了不同的意见。

假设我有一个 Author 实体和一个 Book 实体...它们之间存在多对多关系。

在我的数据库中,我用三个表来表示它,一个authors 表、一个books 表和一个authors_books 表(基本上只是将它们连接在一起。

在 Symfony 2 中,我是否还创建了一个 AuthorsBooks 实体,其唯一目的是将 Author 和 Book 实体连接在一起?或者,Symfony 会为我处理吗?

【问题讨论】:

    标签: symfony doctrine-orm


    【解决方案1】:

    如果除了作者和书籍的关联之外别无其他,则无需创建 AuthorsBooks 实体。

    您现在有两个选择,单向或双向。您可以直接在 Doctrine2 文档here中找到更多信息

    对于单向,你会有类似的东西(yml):

    Author:
      type: entity
      manyToMany:
        bookList:
          targetEntity: Group
          joinTable:
            name: authors_books
              joinColumns:
                user_id:
                  referencedColumnName: id
              inverseJoinColumns:
                book_id:
                  referencedColumnName: id
    

    【讨论】:

    • 我选择了这个答案,因为它提供了更多选项,但两者都很棒!
    【解决方案2】:

    Symfony 与此无关,这完全是 Doctrine 的事情。但是,不,您不必创建 AuthorsBooks 实体。您所要做的就是正确配置 Doctrine,即使用 @JoinTable annotation 指定应该使用哪个表来连接两个实体。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-04
      相关资源
      最近更新 更多