Доктрина множественных отношений «один ко многим» за одним столом - PullRequest
2 голосов
/ 17 февраля 2012

У меня есть небольшая проблема с доктриной и Yaml:

Вот моя модель:

 Keyword:
  columns:
    word: { type: string, notnull: true }
    is_stopword: { type: boolean, default: 0 }
    has_parents: { type: boolean, default: 0 }

Relation:
  columns:
    child: { type: integer, notnull: true }
    parent: { type: integer, notnull: true }
  relations:
    Keyword: { onDelete: CASCADE, local: [child, parent], foreign: id }    

Почему-то я не могу заставить Doctrine связать оба отношения, только первое(ребенок) подключается к «Ключевому слову» ... Так как у Ребенка может быть много Родителей, а у Родителя много Детей, это единственный способ, который я вижу, чтобы решить эту проблему ... Любые подсказки?

1 Ответ

1 голос
/ 12 июля 2012

Вы должны определить два отношения, одно для родителя и одно для ребенка. Это local: [child, parent] не будет работать, для каждого отношения вы должны определить одно локальное и одно внешнее поле.

Relation:
  columns:
    child: { type: integer, notnull: true }
    parent: { type: integer, notnull: true }
  relations:
    ChildKeyword: { onDelete: CASCADE, local: child, foreign: id }
    ParentKeyword: { onDelete: CASCADE, local: parent, foreign: id }
...