2017-05-18 7 views
0

私はしばらくの間、symfonyに取り組んできましたが、どのように動作するのか理解しようとしています。だから、タスクの配列にいくつのタスクがあるのか​​を数えようとしました。配列内のオブジェクトを数えるには?

これは私の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? 
} 

は、だから私は数小枝ための「ポイント」と小枝のプリントを渡し、私はすべてのタスク小枝でを印刷しようとすると、私は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

SQLが '$ repository-> findByAuthor(の$ this - >のgetUser() - > getUsername())によって生成されたチェック'、どのSQLが( 'する$ user-> getTasksによって生成される)'としてみてくださいこれらの生のSQLクエリをデータベースに再度実行します。 –

+0

コントローラー内の 'dump($ tasks);'を使って、内部にあるものを確認します。 – COil

+0

@COil答えはどこにありますか?私のウェブで? – David

答えて

2

一般的に、あなたがオブジェクトの数を取得するためにPHPでcount()またはsizeof()機能を使用する必要があります。 いくつかの小枝コードがあります。したがって、$tasks以上の反復の代わりに$points = count($tasks)を実行して増分することができます。

twigテンプレートで配列数を取得する場合は、組み込みのlengthフィルタを使用できます。

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

ありがとう;)それは多くの助けになります:) – David

関連する問題