Symfony + доктрина + отношения один ко многим - PullRequest
1 голос
/ 02 марта 2010

Мне нужны отношения один-ко-многим для моего проекта sf 1.4 + doctrine 1.2. Я скопировал отношение так:

User:
  columns:
    id:
      type: integer(4)
      primary: true
      autoincrement: true
    contact_id:
      type: integer(4)
    username:
      type: string(255)
    password:
      type: string(255)

Phonenumber:
  columns:
    id:
      type: integer(4)
      primary: true
      autoincrement: true
    name:
      type: string(255)
    user_id:
      type: integer(4)
  relations:
    User:
      foreignAlias: Phonenumbers

Затем я перестраиваю свою схему и генерирую внутренние модули для User и Phonenumber.

В админ-панели Phonenumber я могу установить пользователя с помощью поля выбора с Users. Но в панели администратора пользователя у меня нет списка с номерами телефонов, чтобы позволить пользователям выбирать несколько номеров для пользователя. Как я могу добавить многие отношения здесь?

1 Ответ

4 голосов
/ 03 марта 2010

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

В вашем Пользователе :

relations:
   Phonenumber:
     class: Phonenumber  // model name for relation
     local: id           // key in this table
     foreign: id         // key in the referenced table
     type: many          // User has MANY phonenumbers
     foreignType: one    // Phonenumber has ONE user
     alias: Phonenumber  // What a user calls Phonenumber
     foreignAlias: User  // What a Phonenumber calls User

Учитывая, что вы объявляете "id" для обеих таблиц вместо того, чтобы Doctrine позволяла их автоматически создавать, вам может потребоваться включить "local" и "Foreign" ... еще не проверено.

...