0

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

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

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

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

4

2 回答 2

2

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

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

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

Author:
  type: entity
  manyToMany:
    bookList:
      targetEntity: Group
      joinTable:
        name: authors_books
          joinColumns:
            user_id:
              referencedColumnName: id
          inverseJoinColumns:
            book_id:
              referencedColumnName: id
于 2012-05-08T08:44:35.997 回答
1

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

于 2012-05-07T23:43:11.280 回答