Symfony2 Doctrine 得到全部计数为整数
Symfony2 Doctrine get count all as integer
我想统计数据库中的所有记录。我还没有找到一种推荐的方法来做到这一点。所以我在我的实体回购中建立了这个功能:
public function countAll()
{
return $this->createQueryBuilder('post')
->select('COUNT(post)')
->getQuery()->getSingleScalarResult()
;
}
没关系,因为它 returns 我计算了所有项目。我使用 FOSRestBundle,所以我在控制器中的操作如下所示:
public function getPostsCountAction() {
return $this->em->getRepository('KamilTestBundle:Post')->countAll();
}
地址 posts/count.json 的结果看起来像:
"16"
但是...我想将此值取为整数。我不知道为什么 QueryBuilder returns 它作为字符串。即使我使用 ->getQuery()->getResult() 并转储此输出,它也是字符串,而不是整数。
如何将此值取为整数?有可能吗?
intval() 将 return 字符串的数字表示。
虽然使用它可能有点麻烦,但你应该 100% 没问题,因为你知道你只会得到数字。
public function countAll()
{
return intval($this->createQueryBuilder('post')
->select('COUNT(post)')
->getQuery()->getSingleScalarResult());
}
return count($this->em->getRepository('KamilTestBundle:Post')->findAll());
这应该 return 一个整数 (count)。
另一种方法是类型转换:
return (int) $this->em->getRepository('KamilTestBundle:Post')->countAll();
这只会将您的字符串转换为 int,应该比 PHP 中的计数更有效。
我想统计数据库中的所有记录。我还没有找到一种推荐的方法来做到这一点。所以我在我的实体回购中建立了这个功能:
public function countAll()
{
return $this->createQueryBuilder('post')
->select('COUNT(post)')
->getQuery()->getSingleScalarResult()
;
}
没关系,因为它 returns 我计算了所有项目。我使用 FOSRestBundle,所以我在控制器中的操作如下所示:
public function getPostsCountAction() {
return $this->em->getRepository('KamilTestBundle:Post')->countAll();
}
地址 posts/count.json 的结果看起来像:
"16"
但是...我想将此值取为整数。我不知道为什么 QueryBuilder returns 它作为字符串。即使我使用 ->getQuery()->getResult() 并转储此输出,它也是字符串,而不是整数。
如何将此值取为整数?有可能吗?
intval() 将 return 字符串的数字表示。
虽然使用它可能有点麻烦,但你应该 100% 没问题,因为你知道你只会得到数字。
public function countAll()
{
return intval($this->createQueryBuilder('post')
->select('COUNT(post)')
->getQuery()->getSingleScalarResult());
}
return count($this->em->getRepository('KamilTestBundle:Post')->findAll());
这应该 return 一个整数 (count)。
另一种方法是类型转换:
return (int) $this->em->getRepository('KamilTestBundle:Post')->countAll();
这只会将您的字符串转换为 int,应该比 PHP 中的计数更有效。