Doctrine_Table 中的查询生成器?

发布于 2024-11-19 06:43:43 字数 482 浏览 1 评论 0原文

我之前在其他 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

I have a previously writen query in other Doctrine project using 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);

How can I replicate this in my inherited class from Doctrine_table in symfony?

I am using symfony 1.4

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

疾风者 2024-11-26 06:43:43

在您的 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);

In your ChapterTable class, something like the following:

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();
}

Then you can call this with eg:

$myMaxValue = 25;
$results = Doctrine::getTable("Chapter")->getChapters($myMaxValue);
夏末的微笑 2024-11-26 06:43:43

这里是组织查询的一个很好的解决方案:

Here is a nice solution to organize your queries:

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文