Doctrine_Table中的查询构建器?

时间:2011-07-11 04:39:05

标签: php mysql symfony1 doctrine

我在使用查询生成器的其他Doctrine项目中有一个先前写过的查询。

$qb->select('c', 'm')
           ->from('Chapter c')
           ->leftJoin('c.Book m')
           ->orderBy('c.chapterno DESC')
           ->addOrderBy('m.id ASC')
           ->groupBy('m.id')
           ->where('c.chapterno = (SELECT MAX(v.chapterno) FROM Chapter v WHERE v.mid = m.id)')
           ->limit($max);

如何在symfony中从Doctrine_table继承的类中复制它?

我正在使用symfony 1.4

2 个答案:

答案 0 :(得分:1)

ChapterTable课程中,如下所示:

public function getChapters($max)
{
    $qry = self::getInstance()
        ->createQuery("c")
        ->leftJoin('c.Book m')
        ->orderBy('c.chapterno DESC')
        ->addOrderBy('m.id ASC')
        ->groupBy('m.id')
        ->where('c.chapterno = (SELECT MAX(v.chapterno) FROM Chapter v WHERE v.mid = m.id)')
        ->limit($max);

    return $qry->execute();
}

然后你可以用例如:

来调用它
$myMaxValue = 25;
$results = Doctrine::getTable("Chapter")->getChapters($myMaxValue);

答案 1 :(得分:1)

Here是一个很好的解决方案来组织您的查询: