Symfony QueryBuilder计数请求返回“;数组";
我正在尝试对id字段进行计数请求 我的控制器中有以下代码:Symfony QueryBuilder计数请求返回“;数组";,symfony,count,query-builder,Symfony,Count,Query Builder,我正在尝试对id字段进行计数请求 我的控制器中有以下代码: $qb = $em->createQueryBuilder(); $qb->select('count(c.id)') ->from('MyBundle:Category', 'c') ->where('c.author = :aut') ->setParameter('aut', $author); $result = $qb->getQuery()
$qb = $em->createQueryBuilder();
$qb->select('count(c.id)')
->from('MyBundle:Category', 'c')
->where('c.author = :aut')
->setParameter('aut', $author);
$result = $qb->getQuery()->getResult();
return $this->render('MyCategoryBundle:Category:categories.html.twig', array(
'categories' => $categories,
'result' => $result
));
在my view.html.twig中:
{% for category in categories %}
<li>
{{ category.title }}
{% for total in result %}
{{ total }}
{% endfor %}
</li>
{% endfor %}
{%用于类别中的类别%}
{{category.title}}
{结果%中的总数为%}
{{total}}
{%endfor%}
{%endfor%}
它返回类别标题和字符串“Array”。我做错了什么?该getResult()
返回一个对象数组(集合)。为了得到一个简单的数字,您必须使用
不管怎样,代码的目标是什么?如果要显示每个作者的类别数,您的代码可能无法工作,因为您显示了一个类别列表,但只计算一个作者的类别数。请尝试以下操作:
$qb = $em->createQueryBuilder();
$qb->select('count(c.id) AS cnt')
->from('MyBundle:Category', 'c')
->where('c.author = :aut')
->setParameter('aut', $author);
$result = $qb->getQuery()->getResult();
然后在twig{{result.cnt}}哦,好吧,我不知道。是的,我想显示一个作者的类别数。我用$author变量获取它的id。那么为什么在类别上使用
for
循环呢?这是由于我使用getResults()得到了数组结果。我确实错了。它使用getSingleScalarResult()并删除视图中的循环。谢谢你的帮助和解释!