PHP: Доктрина: порядок объединенных записей - PullRequest
2 голосов
/ 14 июня 2010

Я новичок в доктрине: у меня проблема с сортировкой объединенных записей.

Пример.

У меня есть модель Article, связанная с моделью Source.в 1 <-> н.У исходной модели есть свойство с именем 'position' с целочисленным значением.

Теперь я хочу получить статью с ее источниками или адресами по позиции.Мой DQL выглядит так:

$q = Doctrine_Query::create()
  ->select('a.title, s.content')
  ->from('Article a')
  ->leftJoin('a.Source s')
  ->where('a.id = ?')
  ->orderBy('s.position');

Результат не изменится, если я отредактирую позицию.

С уважением, Себастьян

Ответы [ 3 ]

0 голосов
/ 16 июня 2010

Да, выглядит нормально. Попробуйте сгенерировать SQL из DQL с помощью getSqlQuery () и запросить в базе данных результат. Если вывод по-прежнему неправильный, это может быть связано с проблемой с данными или, более вероятно, с DQL.

0 голосов
/ 16 июля 2010

Возможно, вам следует включить столбец, который вы используете для заказа (s.position), поэтому попробуйте это:

$q = Doctrine_Query::create()
->select('a.title, s.content, s.position')
->from('Article a')
->leftJoin('a.Source s')
->where('a.id = ?')
->orderBy('s.position');
0 голосов
/ 14 июня 2010

Хм ... так и должно быть. Может быть, попробуйте любой из этих:

->orderBy('s.position DESC')
->orderBy('s.position ASC')
...