Symfony2 getDoctrine计数结果

时间:2014-08-21 20:19:09

标签: symfony count doctrine

如何输出此结果的数量:

$count_task_done = $this->getDoctrine()
        ->getRepository('SeotoolMainBundle:Task')
        ->findBy(array('User' => $user_id, 'Done' => TRUE));

提前谢谢。

编辑1:

目前我在TWIG解决了这个问题:

{% set count_task_done = count_task_done|length %}

有更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

您可以使用QueryBuilder:

// SeotoolMainBundle/Repository/TaskRepository.php
public function getTasksCount($user_id, $status) 
{
    $query = $this->createQueryBuilder('t')
        ->select('COUNT(t)')
        ->where('t.user = :user')
        ->andWhere('t.done = :status')
        ->setParameters(array(
            'user' => $user_id,
            'status' => $status, // true
        ));

    return $query->getQuery()->getSingleScalarResult();
}