Конструктор запросов в Doctrine_Table? - PullRequest
0 голосов
/ 11 июля 2011

У меня есть ранее написанный запрос в другом проекте Doctrine с использованием Query Builder.

$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);

Как мне повторить это в моем унаследованном классе от Doctrine_table в symfony?

Я использую Symfony 1.4

Ответы [ 2 ]

1 голос
/ 12 июля 2011

Здесь - хорошее решение для организации ваших запросов:

1 голос
/ 11 июля 2011

В вашем классе 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);
...