Ik wil een overzicht van klanten, projecten en openstaande taken tonen. Een taak hoort bij een project, een project hoort bij een klant.
Ik doe hiervoor 3 API-calls naar de TrackingTime API; ik heb dus 3 objecten: eentje met alle $clients, eentje met $projects, eentje met $tasks .
Om dit overzicht te maken loop ik over alle $clients, daarbinnen loop ik over alle $projects waarbij $project->client->id == $client->id.
Hetzelfde doe ik daarbinnen met alle $tasks: lopen over $tasks waarbij $task->project_id == $project->id .
Nu zijn er bij het merendeel van die projects geen taken en vaak ook geen taken die nog open staan onder die clients.
Nu is m'n vraag: hoe kan ik zo'n project NIET tonen als er geen taken zijn, en bij uitbreiding ook de client NIET tonen als er geen tasks zijn?
Het probleem is dat ik pas 2 niveau's diep in de loops weet of er geen tasks zijn, maar op dat moment is de "header" met klantnaam wel al gerenderd?
Code: Selecteer alles
foreach ($clients->data as $client) {
echo "<h2>" . $client->name . "</h2>";
foreach ($projects->data as $project) {
if ($project->customer->id == $client->id) {
echo "<h4>" . $project->name . "</h4>";
foreach ($tasks->data as $task) {
if ($task->project_id == $project->id) {
echo $task->name;
}
}
}
}
}