Несколько много ко многим отношениям в Symfony2 - PullRequest
3 голосов
/ 02 марта 2012

У меня есть 3 объекта:

  • Песня
  • Исполнитель
  • Жанр

Одна песня может иметь несколько жанров и наоборот,В песне также может быть несколько исполнителей и наоборот.

Вот почему я пытаюсь создать два отношения «многие ко многим».Однако при создании предложений Entity первый из двух всегда «переопределяется» вторым, и для него не создаются переменные или методы доступа.

Вот мой yaml: (обновлено)

Foo\BarBundle\Entity\Song:
  type: entity
  table: song
  id:
    id:
      type: integer
      generator:
        strategy: AUTO
  fields:
    title:
      type: string
      length: 300
    mime_type:
      type: string
      length: 20
    filesize:
      type: integer
      length: 20
    length:
      type: string
      length: 20
    created_at:
      type: datetime
      gedmo:
        timestampable:
          on: create
  manyToOne:
    user:
      targetEntity: Spotaset\UserBundle\Entity\User
      inversedBy: songs
  manyToMany:
    genres:
      targetEntity: Genre
      inversedBy: songs
  manyToMany:
    artists:
      targetEntity: Artist
      inversedBy: songs


Foo\BarBundle\Entity\Artist:
  type: entity
  table: artist
  id:
    id:
      type: integer
      generator:
        strategy: AUTO
  fields:
    name:
      type: string
      length: 100
      unique: true
  manyToMany:
    songs:
      targetEntity: Song
      mappedBy: artistss

Foo\BarBundle\Entity\Genre:
  type: entity
  table: genre
  id:
    id:
      type: integer
      generator:
        strategy: AUTO
  fields:
    name:
      type: string
      length: 100
      unique: true
  manyToMany:
    songs:
      targetEntity: Song
      mappedBy: genres

Я не знаю много о реляционных базах данных, поэтому я не знаю, является ли это ошибкой или что этот дизайн вообще плохой ..

Вся помощь очень ценится!

1 Ответ

9 голосов
/ 04 марта 2012

Наконец-то решил эту (глупую) проблему.Оказалось, что я должен был определить оба многие ко многим под одним заголовком manyToMany так:

...