1
$em = $this->getDoctrine()->getEntityManager();
$qb = $em->createQueryBuilder();

$tickets = $qb->select('COUNT(ticket.id)')->from('MyBundle:Ticket', 'ticket');
var_dump($tickets->getQuery()->getSingleScalarResult());

戻り値

array(1) {
  [0]=>
  array(1) {
    [1]=>
    string(3) "125"
  }
}

しかし、データベースには5つのエントリしかありません。何が悪いのか考えてみませんか?

var_dump($tickets->getQuery()->getSql());

与える

SELECT COUNT(t0_.id)AS sclr0 FROM ticket t1_、ticket t2_、ticket t0_ GROUP BY t0_.id ORDER BY t2_.created_at ASC LIMIT 1

4

2 に答える 2

0

次のように試すことができます:

$em = $this->getDoctrine()->getEntityManager();
$query = "SELECT count(s) FROM MyBundle:Ticket s ";
$queryObj = $em->createQuery($query);
$result = $queryObj->execute();

このコードはテストしていません。しかし、それはうまくいくはずです。

于 2012-10-17T13:04:49.450 に答える
0

実際には、このクエリの前に、同じクエリ ビルダー インスタンスを使用するクエリがさらに 2 つありました。これが問題かもしれません。クエリを削除すると、count クエリが正常に機能するようになりました。

于 2012-10-18T05:17:18.750 に答える