我在我的桌子上#34; Artiste"一栏" valideAdmin"谁取值1或0。
我尝试进行一个简单的计数,以返回表格中的条目数,其中" valideAdmin"是1:
$repo = $this ->getDoctrine()
->getManager()
->getRepository('ProjectMainBundle:Artiste');
$qb = $repo->createQueryBuilder('valideAdmin');
$qb->select('COUNT(valideAdmin)');
$qb->where('valideAdmin=1');
$count = $qb->getQuery()->getSingleScalarResult();
return array(
'count' => $count
);
但它总是" 1"谁回来了......
没有where子句,我有表的条目总数,但是valideAdmin可以是0或1.我只想要valideAdmin = 1的计数数
感谢您的帮助
答案 0 :(得分:17)
createQueryBuilder()
的第一个参数是您希望实体采用的alias
(即:用于在查询中引用您的实体的短名称)。
您需要做的是为您的实体设置正确的别名(例如a
为Artiste
),然后COUNT()
实体属性<的实例/ strong>(不是列)valideAdmin
设置为1:
$repo = $this ->getDoctrine()
->getManager()
->getRepository('ProjectMainBundle:Artiste');
$qb = $repo->createQueryBuilder('a');
$qb->select('COUNT(a)');
$qb->where('a.valideAdmin = :valideAdmin');
$qb->setParameter('valideAdmin', 1);
$count = $qb->getQuery()->getSingleScalarResult();
请记住DQL
在实体上运行查询。然后将您的写入DQL
转换为SQL
以查询基础数据源。
答案 1 :(得分:0)
您还可以获取所有日期,然后使用 PHP 中的 COUNT 函数 这种方法有一个优势。您不必使用复杂的查询。 您具有计数列的所有信息
$repositoryArtiste = $this->getDoctrine()
->getRepository('ProjectMainBundle:Artiste');
$queryArtiste= $repositoryArtiste->createQueryBuilder('a')
->Where('a.valideAdmin = :valideAdmin')
->setParameter('valideAdmin',1)
->getQuery();
$Artiste = $queryArtiste->getResult();
var_dump(count($Artiste));