如何计算数组中的对象?

时间:2017-05-18 14:50:08

标签: php symfony twig

所以我一直在使用symfony一段时间,我正在努力了解它是如何工作的。所以,我试着计算我的 tasks 数组中有多少任务。

这是我的homeController.php类:

 public function succesfulLogin(Request $request)
{

    $repository = $this->getDoctrine()->getRepository('AppBundle:Task');
    $tasks = $repository->findByAuthor($this->getUser()->getUsername());
    $points = 0;

    foreach($tasks as $task){
        $points++;
    }

    return $this->render(
        'userpage.html.twig',array('username' => $username = $this->getUser()->getUsername(), 'tasks' => $tasks, 'points' => $points ));
    $user->getTasks();
   //as I understant I return '$tasks' array to twig with all my tasks
   //so before returning '$tasks' array it should have 21 object in it?(not 13)
   //am I wrong?
}

所以我将'points'传递给twig,twig打印出数字 13 ,但是当我尝试在树枝上打印出所有任务时,它说我有21任务。 有一些树枝代码:

{% for task in tasks %}//this foreach loop prints out 21 task
        <tr>
            <td id>{{ task.Id }}</td>
            <td>{{ task.Status }}</td>
            <td>{{ task.Name }}</td>
            <td>{{ task.Description }}</td>
            <td>{{ task.Category }}</td>
            <td>{{ task.Author }}</td>
            <td>{{ task.CreationDate|date("m/d/Y") }}</td>
            <td><a id="myLink" href="/edit/{{ task.ID }}" > Edit </a></td>
            <td><a id="myLink" href="/delete/{{ task.ID }}" >Delete</a></td>
            <?php echo 2+2; ?>            </tr>
    {% endfor %}

1 个答案:

答案 0 :(得分:2)

通常,您应该在PHP中使用count()sizeof()函数来获取对象的计数。因此,您只需运行$points = count($tasks)而不是$tasks上的迭代并递增。

如果您希望在树枝模板中获取数组计数,则可以使用内置的length过滤器。

{% set tasks_count = tasks|length %}