2017-05-18 1 views
0

저는 심포니를 한동안 사용 해왔고 어떻게 작동하는지 이해하려고합니다. 그래서, 내 작업에 얼마나 많은 작업을 가지고 있는지 계산하려했습니다. 배열.배열에있는 객체를 계산하는 방법은 무엇입니까?

이 내 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? 
} 

그래서 내가 '포인트'나뭇 가지와에 전달 나뭇 가지 출력합니다 수 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

확인 ($ this-> 인 getUser은() -> 때 getUserName())'와 SQL은'$ 사용자 -> getTasks에 의해 생성 된()'와하는 시도 데이터베이스를 다시 원시 SQL 쿼리를 실행합니다. –

+0

컨트롤러에'dump ($ tasks);'를 사용하여 안에 무엇이 있는지 확인하십시오. – COil

+0

@COil 어디서 대답해야합니까? 내 웹에? – David

답변

2

일반적으로, 당신은 객체의 수를 얻기 위해 PHP에서 count() 또는 sizeof() 기능을 사용해야합니다 일부 나뭇 가지 코드가있다. 따라서 $tasks 이상의 반복 대신에 $points = count($tasks)을 실행하고 증가시킬 수 있습니다.

나뭇 가지 템플릿에서 배열 수를 얻으려면 내장형 length 필터를 사용할 수 있습니다. SQL은`$ repository-> findByAuthor 메소드에 의해 생성되는

{% set tasks_count = tasks|length %} 
+0

고마워;) 많이 도움이 될거야 :) – David