Mac*_*nie 4 php doctrine dql symfony
我在我的表"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
);
Run Code Online (Sandbox Code Playgroud)
但总是"1"谁回来了......
如果没有where子句,我有表的条目总数,但是valideAdmin可以是0或1.我只想要valideAdmin = 1的计数
感谢帮助
And*_*ore 17
createQueryBuilder()第一个参数是alias您希望实体采用的参数(即:用于在查询中引用您的实体的短名称).
您需要做的是为您的实体设置一个正确的别名(例如afor Artiste),然后COUNT()为您的实体设置属性(而不是列)valideAdmin设置为一个实例:
$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();
Run Code Online (Sandbox Code Playgroud)
请记住,DQL对实体运行查询.将DQL那么你写被翻译成SQL之后查询的基础数据源.