我正在尝试在id字段上发出计数请求。
我的控制器中有以下代码:
$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
));
在我的view.html.twig中:
{% for category in categories %}
<li>
{{ category.title }}
{% for total in result %}
{{ total }}
{% endfor %}
</li>
{% endfor %}
它还返回类别标题和字符串“Array”。我做错了什么?
答案 0 :(得分:3)
getResult()
返回一个对象的数组(集合)。您必须使用getSingleScalarResult()
function才能将结果作为简单数字。
无论如何,你的代码的目标是什么?如果要显示每个作者的类别数,您的代码可能不起作用,因为您显示了一个类别列表,但您只计算一个作者的类别。
答案 1 :(得分:0)
试试这个:
$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}}
中