首页 > 解决方案 > Doctrine - 返回不为 0 的结果

问题描述

我正在尝试编写查询,我可以在每个操作触发器上检查数据库表,如果只有一个实体对象等于或大于 0,则返回数据。

我可以在查询中执行还是需要遍历数组?

我的尝试:

$query = $this->getMyRepository()
    ->createQueryBuilder('a')
    ->select('COUNT(a)')
    ->where("mod(:units, a.units) >= 0")
    ->getQuery()
    ->getResult();

if ($query) {
    return $query;
}

标签: phpsymfonydoctrine-ormsymfony-3.4

解决方案


使用包含 a 的 select 解析结果与count经典查询有点不同。

你可以试试这个。也许代码可以重构。这是一个旧的(但有效的)示例。

$result = $qb->getQuery()->getScalarResult()[0];

return count($result) !== 0 ? (int) array_shift($result) : 0;

推荐阅读