我想获取数据库中所有记录的计数。我还没有找到推荐的方法来做到这一点。所以我已经在我的实体仓库中内置了此功能:
public function countAll()
{
return $this->createQueryBuilder('post')
->select('COUNT(post)')
->getQuery()->getSingleScalarResult()
;
}
可以,因为它返回了我所有物品的数量。我使用FOSRestBundle,所以我在控制器中的操作如下所示:
public function getPostsCountAction() {
return $this->em->getRepository('KamilTestBundle:Post')->countAll();
}
和结果在addres posts / count.json看起来像:
"16"
但是...我想将此值作为整数。我不知道为什么QueryBuilder以字符串形式返回它。即使我使用-> getQuery()-> getResult()并转储此输出,它也是字符串,而不是整数。
如何将此值当作整数?有可能的?
intval()将返回字符串的数字表示形式。
虽然使用它可能会很麻烦,但是您应该100%罚款,因为您知道只会得到数字。
public function countAll()
{
return intval($this->createQueryBuilder('post')
->select('COUNT(post)')
->getQuery()->getSingleScalarResult());
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句