You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Doctrine查询如何直接返回求和结果字符串而非嵌套数组

解决方法

你只需要调整查询的结果获取方法,也可以给聚合字段添加别名提升可读性,修改后的代码如下:

//HoursRepository.php

public function findHoursTotal($user)
{
    return $this->createQueryBuilder('h')
        ->where('h.user = :user')
        ->select('SUM(h.total) AS hoursTotal')
        ->setParameter('user', $user)
        ->getQuery()
        ->getSingleScalarResult();
}

修改说明

  • 给SUM(h.total)添加别名hoursTotal,避免Doctrine自动生成无意义的数字键
  • 将原有的getResult()替换为getSingleScalarResult():该方法会直接返回查询得到的首个标量结果,也就是你需要的"52400"字符串,不会产生嵌套数组结构。

如果需要兼容无匹配数据的场景,可以添加异常处理:

//HoursRepository.php

public function findHoursTotal($user)
{
    try {
        return $this->createQueryBuilder('h')
            ->where('h.user = :user')
            ->select('SUM(h.total)')
            ->setParameter('user', $user)
            ->getQuery()
            ->getSingleScalarResult();
    } catch (\Doctrine\ORM\NoResultException $e) {
        // 无对应数据时返回默认值,可根据业务需求调整
        return '0';
    }
}

内容的提问来源于stack exchange,提问作者johannes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 13:06:00