PHP:Doctrine:订购已加入的记录

时间:2010-06-14 11:21:02

标签: php doctrine left-join

我是学说的新手:我对连接记录的排序有问题。

样本。

我有一个与1< - >中的Source模型相关联的文章模型。 ñ。源模型有一个名为'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 :(得分:0)

嗯......应该这样做。也许尝试其中任何一个:

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

答案 1 :(得分:0)

是的,看起来不错。尝试使用getSqlQuery()从DQL生成SQL,并使用结果查询数据库。如果仍然存在错误的输出,则可能是数据问题,或者更可能是DQL。

答案 2 :(得分:0)

也许你应该包括你用于排序的列(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');