Связь доктрины между двумя таблицами - PullRequest
1 голос
/ 09 февраля 2010

У меня есть две таблицы A и B. A имеет один или несколько регистров в B. Я хочу объединить две таблицы и извлечь всю информацию об A.

Я делаю это:

schema.yml

A:
  fields.....

B:
  fields...
  relations:
    A: { onDelete: CASCADE, local: a.id, foreign: b.id, foreignalias: AB }

И я пытаюсь это сделать ...

  $q = Doctrine_Query::create()
  ->from('A a')
  ->leftJoin('a.AB b')
  ->where('a.field = "D"')
  ->andWhere('b.codzon = ?', $this->cp);

выводит ошибку: Неизвестный псевдоним отношения Что я делаю не так?

Ответы [ 2 ]

4 голосов
/ 09 февраля 2010

Ваш запрос в порядке, ошибки в вашем определении. Вам нужно определить отношения с обеих сторон: A и B. Мне не очень удобно с YML, но это должно выглядеть так:

A:
  relations:
    B:
      local: id
      foreign: id
      foreignAlias: AB
      foreignType: many
      type: one

См. Также http://www.doctrine -project.org / Documentation / manual / 1_0 / ru / yaml-schema-files # отношения: один-ко-многим для параметра обнаружения_отношения.

0 голосов
/ 09 февраля 2010

Удалить имена таблиц из схемы:

...
A: { onDelete: CASCADE, local: id, foreign: id, foreignalias: AB }
...
...