public function indexAction(Subject $subject) { $data = []; $students = $subject->getEducationClass()->getStudents(); $teachingUnits = $subject->getTeachingUnits(); foreach ($students as $student) { $studentData = ['id' => $student->getId(), 'firstname' => $student->getFirstname(), 'lastname' => $student->getLastname(), 'teachingUnits' => []]; $marks = $student->getMarks(); foreach ($teachingUnits as $teachingUnit) { /** @var $teachingUnit TeachingUnit */ $studentData['teachingUnits'][$teachingUnit->getId()] = null; } foreach ($marks as $mark) { /** @var MarkEntity $mark */ $markSubject = $mark->getTeachingUnit()->getSubject(); if ($markSubject->getId() === $subject->getId()) { $studentData['teachingUnits'][$mark->getTeachingUnit()->getId()] = $mark->getMark(); } } $data[] = $studentData; } return $this->render('MarkBundle:mark:index.html.php', ['data' => $data, 'teachingUnits' => $teachingUnits, 'subject' => $subject]); }