0

私はSymfony2とDoctrineが多対多の関係をどのように扱っているかを理解し始めていますが、私は何かに固執していて、異なる意見を読んだようです。

私がAuthorエンティティとBookエンティティを持っているとしましょう...それらの間には多対多の関係があります。

私のデータベースでは、これを3つのテーブル、1つのテーブル、1つauthorsのテーブルbooks、および1つのauthors_booksテーブル(基本的にはそれらを結合するだけ)で表します。

Symfony 2ではAuthorsBooks、AuthorエンティティとBookエンティティを結合することを唯一の目的とするエンティティも作成しますか?または、Symfonyは私のためにそれを処理しますか?

4

2 に答える 2

2

著者と本の関連付け以外に何もない場合は、AuthorsBooksエンティティを作成する必要はありません。

現在、単方向または双方向の2つのオプションがあります。詳細については、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を適切に構成するだけです。つまり、2つのエンティティを結合するために使用するテーブルを指定する@JoinTable注釈を使用します。

于 2012-05-07T23:43:11.280 に答える