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

hmae6n7t  于 12个月前  发布在  其他
关注(0)|答案(3)|浏览(122)

我想计算从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();
zpgglvta

zpgglvta1#

试试这个代码

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

bfrts1fy2#

好吧,@Praveesh有答案,虽然有一个轻微的错别字。应该是:id而不是?id。
但是这个链接已经为我赢得了680次代表,所以我很确定它是正确的:

t5zmwmid

t5zmwmid3#

Use 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,你应该把上面的链接加入书签。

相关问题