Доктрина - создай один-ко-многим с таблицей соединений в YAML - PullRequest
1 голос
/ 03 декабря 2011

Я пытаюсь создать отношение «один ко многим» между пользователем и ролью с помощью таблицы соединений. Мне не удалось найти пример YAML в документах доктрины

Как мне объявить эквивалентные отношения с YAML?

/**
 * @ORM\ManyToMany(targetEntity="Role")
 * @ORM\JoinTable(name="user_role",
 *     joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
 *     inverseJoinColumns={@ORM\JoinColumn(name="role_id", referencedColumnName="id")}
 * )
 *
 * @var ArrayCollection $userRoles
 */
protected $userRoles;

YAML-файлы:

Acme\AcmeBundle\User:
  type: entity
  table: null
  fields:
  id:
    type: integer
    id: true
    generator:
    strategy: AUTO
  forename:
    type: string
    length: 255
  surname:
    type: string
    length: 255
  email:
    type: string
    length: 255
  lifecycleCallbacks: {  }

Acme\AcmeBundle\Role:      
  type: entity
  table: null
  fields:
  id:
    type: integer
    id: true
    generator:
    strategy: AUTO
  name:
    type: string
    length: 255
  createdAt:
    type: datetime
  lifecycleCallbacks: {  }

1 Ответ

1 голос
/ 20 ноября 2012

Это то, что вы ищете?

Acme\AcmeBundle\User:
  type: entity
  manyToMany:
      roles:
          targetEntity: Role
          joinTable:
              name: user_role
              joinColumns:
                  user_id:
                      referencedColumnName: id
              inverseJoinColumns:
                  role:
                      referencedColumnName: id
  table: null
  fields:
  id:
    type: integer
    id: true
    generator:
    strategy: AUTO
  forename:
    type: string
    length: 255
  surname:
    type: string
    length: 255
  email:
    type: string
    length: 255
  lifecycleCallbacks: {  }
...