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()并转储此输出它也是字符串,而不是整数.
如何将此值作为整数?有可能的?
intval()将返回字符串的数字表示形式.
虽然使用它可能是一件很滑的事情,但你应该100%罚款,因为你知道你只会获得数字.
public function countAll()
{
return intval($this->createQueryBuilder('post')
->select('COUNT(post)')
->getQuery()->getSingleScalarResult());
}
Run Code Online (Sandbox Code Playgroud)