public function render(Graph $graph, Query $query) { $paths = []; /** @var Path $path */ foreach ($query->getPaths() as $path) { $results = $this->edgeRepository->getPaths($graph->getId(), $path->getStart(), $path->getEnd()); $paths[] = ['path' => $path, 'results' => $results]; } $cheapest = []; /** @var Path $path */ foreach ($query->getCheapest() as $path) { $results = $this->edgeRepository->getPaths($graph->getId(), $path->getStart(), $path->getEnd()); $cheapest[] = ['path' => $path, 'result' => array_shift($results)]; } return $this->templateEngine->render($this->template(), ['paths' => $paths, 'cheapest' => $cheapest]); }