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();
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();
このコードを試してください
$qbTotal = $this->em->createQueryBuilder();
$qbTotal->select('count(i)')
->from('InvoicesInvoicesBundle:Invoiceshasitems', 'i')
->where('i.invoiceid = :id')
->setParameter('id', $id)
;
$qeuryTotal = $qbTotal->getQuery();
$totalItems = $qeuryTotal->getSingleScalarResult();
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 を定期的に使用している場合は、上記のリンクをブックマークしてください。
まあ、@ Praveeshには答えがありますが、少しタイプミスがあります。?id ではなく :id にする必要があります。
しかし、このリンクは私に 680 の担当者を獲得したので、それが正しいと確信しています: Doctrine QueryBuilder で行をカウントする