如何返回我的最后一个计数id queryBuilder

时间:2017-02-08 22:17:03

标签: symfony query-builder

嗨,我对symfony的新观点是放纵plz,这是我的代码

public function countTicket()
{
    $qb = $this
        ->createQueryBuilder('t')
        ->innerJoin('t.visitors', 'v')
        ->Select("count(v.id)")
        ->where('t.visitDate IS NOT NULL')
        ->groupBy('t.visitDate')

    ;

    return $qb
        ->getQuery()
        ->getScalarResult();
}

当我转储countTicket()时,它会返回我所有的Id实体,所有visitDate中的组,这是正常的,但我只想返回上次提交的计数(v.id)我提交并且我不要# 39;不知道该怎么做。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您应该使用getSingleScalarResult()代替getScalarResult(),并将查询限制为仅提取最后一个结果,如下所示:

public function countTicket()
{
    return $this
        ->createQueryBuilder('t')
        ->innerJoin('t.visitors', 'v')
        ->select('count(v.id)')
        ->where('t.visitDate IS NOT NULL')
        ->orderBy('t.visitDate', 'desc')
        ->groupBy('t.visitDate')
        ->setMaxResults(1)
        ->getQuery()
        ->getSingleScalarResult();
}