所以我一直在使用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 %}
答案 0 :(得分:2)
通常,您应该在PHP中使用count()
或sizeof()
函数来获取对象的计数。因此,您只需运行$points = count($tasks)
而不是$tasks
上的迭代并递增。
如果您希望在树枝模板中获取数组计数,则可以使用内置的length
过滤器。
{% set tasks_count = tasks|length %}