Доктрина: присоединяйся один к одному - PullRequest
1 голос
/ 16 декабря 2010

Предположим, у нас есть две модели: Post и ViewsCount.Тип отношений: 1: 1.

Теперь я хочу получить последние 5 сообщений с их статистикой просмотров:

$posts = PostTable::getInstance()->createQuery('p')
    ->leftJoin('p.ViewsCount') // relation name is "ViewsCount"
    ->orderBy('p.created_at DESC')
    ->limit(5)
    ->execute();

Но не повезло.Выдает ошибку.Если я удаляю присоединение - все в порядке.

Итак, мой вопрос - Как автоматически соединять / извлекать отношение один к одному в Doctrine, чтобы избежать множества дополнительных запросов?

Ответы [ 2 ]

1 голос
/ 16 декабря 2010

У вас есть ошибка в синтаксисе. Вам также нужно указать доктрине, что вы хотите получить поля ViewCount:

$posts = PostTable::getInstance()->createQuery('p')
  ->select('p.*, vc.*')
  ->leftJoin('p.ViewsCount vc')
  ->orderBy('p.created_at DESC')
  ->limit(5)
  ->execute();
0 голосов
/ 21 декабря 2010

Похоже, вы должны правильно определить отношения.Для каждой модели определяют отношения с ключом типа (тип: один).

...