【问题标题】:Limit amount of records retrieved when using Doctrine DQL in Symfony2在 Symfony2 中使用 Doctrine DQL 时限制检索的记录数量
【发布时间】:2011-11-16 06:38:06
【问题描述】:

我有以下疑问:

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

我需要做的是限制从该查询返回的记录数量。但是,当我将 LIMIT 10 添加到 SQL 查询时,它会返回此错误:

错误:预期的字符串结尾,得到 '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

我做错了什么?

【问题讨论】:

    标签: php sql doctrine-orm symfony dql


    【解决方案1】:

    据我所知,目前没有像 LIMIT 这样的 DQL 语句。

    你必须使用Query::setMaxResults()

    【讨论】:

    • 成功了,谢谢。这让我有点困惑,因为在这个页面上它说有一个限制命令(这是我正在使用的):doctrine-project.org/documentation/manual/1_1/hu/…。但是你的方法行得通,谢谢:)
    • @mickburkejnr:您在评论中提供的链接适用于 Doctrine 1.2。 Symfony2 使用 Doctrine 2.1,因此您阅读的文档与您使用的版本不匹配。此link 用于 Doctrine 2.1 文档。
    • @matt 是对的,我提供的链接是 1.1(我不知道)。这是新 Symfony 最让我烦恼的一件事。文档到处都是。
    • Doctrine 2.6 的链接:doctrine-project.org/projects/doctrine-orm/en/2.6/reference/…(使用 QueryBuilder 时)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-10
    • 2015-06-10
    相关资源
    最近更新 更多