使用Symfony2中的Doctrine DQL查询时,限制检索到的记录数量

35

我有以下查询:

   $latestcontent = $em->createQuery('
            SELECT c.title, c.content, c.lastedit, a.firstname, a.surname
            FROM ShoutMainBundle:Content c, ShoutMainBundle:Admin a
            WHERE c.author = a.id
            ORDER BY c.lastedit ASC'
            );

我需要做的是限制从这个查询返回的记录数量。然而,当我在SQL查询中添加LIMIT 10时,它会返回以下错误:

错误:期望字符串结束,得到'LIMIT'。

所以,我研究后发现可以在查询之后添加->limit(10)。但这样会引发以下PHP错误:

Fatal error: Call to undefined method Doctrine\ORM\Query::limit() in C:\wamp\www\src\Shout\AdminBundle\Controller\DefaultController.php on line 22

我做错了什么?

1个回答

71

好的,谢谢。这让我有点困惑,因为在这个页面上它说有一个限制命令(这就是我一直在使用的):http://www.doctrine-project.org/documentation/manual/1_1/hu/dql-doctrine-query-language。但你的方法可行,谢谢 :) - mickburkejnr
@mickburkejnr:您在评论中提供的链接是Doctrine 1.2的链接。Symfony2使用的是Doctrine 2.1,因此您阅读的文档与您使用的版本不匹配。这个链接是Doctrine 2.1文档的链接。 - Matt
1
@matt 是对的,我提供的链接是1.1版(我不知道)。这是新Symfony最让我烦恼的一件事。文档到处都是。 - mickburkejnr
Doctrine 2.6的链接:https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/query-builder.html#limiting-the-result(使用QueryBuilder时) - Simon Groenewolt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接