Doctrine2计数结果返回错误的数字

时间:2012-10-17 11:43:15

标签: php symfony doctrine-orm dql

$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

2 个答案:

答案 0 :(得分:0)

你可以尝试:

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

我没有测试这段代码。但它应该有用。

答案 1 :(得分:0)

实际上,在此查询之前,还有两个查询使用相同的查询构建器实例。这可能是问题所在。我删除了查询,现在计数查询工作正常。