如何 return 我的最后一次计数 id queryBuilder

How to return my last count id queryBuilder

嗨,我是 symfony 的新手,请放纵一下,这是我的代码

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() 时,它 return 是我所有 Id 的实体,将所有 visitDate 归为一组,这是正常的,但我只想 return 来自的计数 (v.id)我提交的最后一次访问日期,但我不知道该怎么做。

感谢您的帮助。

您应该使用 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();
}