如何计算 DQL 查询返回的行数?

问题描述 投票:0回答:3

我想计算 DQL 查询返回的行数,我该怎么做? 这是我的 DQL 查询:

$items=$em->createQuery("select i.unitPrice,i.quantity,i.linetotal,i.description from InvoicesInvoicesBundle:Invoiceshasitems i where i.invoiceid='".$id."'");
$itemdata=$items->getResult();
symfony doctrine-orm dql
3个回答
1
投票

使用Count()

$items=$em->createQuery("select COUNT(i.unitPrice)
                         from InvoicesInvoicesBundle:Invoiceshasitems i
                          where i.invoiceid='".$id."'");
    $itemdata=$items->getResult();

http://docs.doctrine-project.org/en/2.1/reference/dql-doctrine-query-language.html

如果您经常使用 DQL,您应该为上面的链接添加书签。


1
投票

试试这个代码

 $qbTotal = $this->em->createQueryBuilder();
 $qbTotal->select('count(i)')
            ->from('InvoicesInvoicesBundle:Invoiceshasitems', 'i')
            ->where('i.invoiceid = :id')
            ->setParameter('id', $id)
             ;
    
 $queryTotal = $qbTotal->getQuery();
 $totalItems = $queryTotal->getSingleScalarResult();

0
投票

嗯,@Praveesh 有答案,尽管其中有一点错字。应该是:id 而不是 ?id。

但是这个链接为我赢得了 680 次代表,所以我很确定它是正确的:Count Rows in Doctrine QueryBuilder

© www.soinside.com 2019 - 2024. All rights reserved.