Symfony2 Doctrine将整数计为整数

Kam*_*l P 2 php query-builder symfony doctrine-orm

我想要计算DB中的所有记录.我没有找到一种推荐的方法来做到这一点.所以我在我的实体repo中构建了这个函数:

public function countAll()
{
    return $this->createQueryBuilder('post')
        ->select('COUNT(post)')
        ->getQuery()->getSingleScalarResult()
        ;
}
Run Code Online (Sandbox Code Playgroud)

它没关系,因为它返回了我所有项目的数量.我使用FOSRestBundle,所以我在控制器中的动作如下:

public function getPostsCountAction() {
    return $this->em->getRepository('KamilTestBundle:Post')->countAll();
}
Run Code Online (Sandbox Code Playgroud)

和结果在addres posts/count.json看起来像:

"16"
Run Code Online (Sandbox Code Playgroud)

但是......我想把这个值当作整数.我不知道为什么QueryBuilder将其作为字符串返回.即使我使用 - > getQuery() - > getResult()并转储此输出它也是字符串,而不是整数.

如何将此值作为整数?有可能的?

And*_*ius 5

intval()将返回字符串的数字表示形式.

虽然使用它可能是一件很滑的事情,但你应该100%罚款,因为你知道你只会获得数字.

public function countAll()
{
    return intval($this->createQueryBuilder('post')
        ->select('COUNT(post)')
        ->getQuery()->getSingleScalarResult());
}
Run Code Online (Sandbox Code Playgroud)

  • 或者`return (int) $this->createQueryBuilder('post')....->getSingleScalarResult()`。 (3认同)