Werken met lijsten/verzamelingen
Ik werk binnen een MVC model en heb wat moeite met het weergeven van lijsten. Zeker als ik ze wil groeperen of sorteren.
Voorbeeld: Ik heb een school. In de school zitten meerdere groepen. In elke groep zitten meerdere leerlingen. Als ik nu een lijst op het scherm wil hebben van alle leerlingen per klas. Hoe kan ik dat nu het beste verwerken in mijn classes. Uiteraard wil ik van zowel de groepen als de leerlingen informatie tonen (+ proces informatie als het totaal).
Resultaat op het scherm:
[groep 1]
(Juf Joke)
Leerling A - 5 jaar
Leerling B - 6 jaar
Leerling C - 5 jaar
Totaal 3 leerlingen
Gemiddelde leeftijd 5,3 jaar
[groep 2]
(Meester Piet)
Leerling D - 7 jaar
Leerling C - 7 jaar
Leerling E - 8 jaar
Leerling F - 7 jaar
Totaal 4 leerlingen
Gemiddelde leeftijd 7,3 jaar
Kan iemand mij uitleggen hoe dit principe werkt? Welke methoden staan er in de models, welke in de controller? Hoe verpak ik de gegevens het beste om ze te versturen naar de view?
Thanks
Je model daar wordt bepaald wat er opgehaald wordt. de methodes kan je natuurlijk zelf invullen maar uiteindelijk moet je query goed zijn om de juiste informatie op te halen.
je kan in je model een methode hebben als
Code (php)
Dit wordt teruggeven aan de controller en die geeft het weer aan de view. zo hoef je in je view alleen maar een paar echo en misschien nog ergens een loopje neer te zetten en klaar.
Tot zo ver snap ik het.
Maar wat als ik nu een lijst met leerlingen wil hebben. Waar zou de methode moeten staan en hoe is die dan opgebouwd? Of is er een extra class "leerlingenlijst" nodig?
Student_model
Hierin heb je methodes omtrent het student.
dus getStudentName, getStudentAge, getStudentClass etc etc.
Voor een lijst met leerlingen kan je bijvoorbeeld een model hebben die verschillende lijsten ophaalt. denk hierbij aan gesorteerd op ... naam? leeftijd? etc etc.
En in het geval van de "school < groep < leerling"
Elk van deze models stelt één school, groep of leerling voor met zijn eigen methoden e.d.
model: school
model: groep
model: leerling
En dan voor een lijst/verzameling (leerlingen):
model: leerlingen_queries (met query's voor het ophalen van lijsten in verschillende vormen) *
Als ik nu een query wil maken zoals ik beschreef in mijn eerste post (overzicht leerlingen per groep). Zou je die query dan plaatsen in het model "leerlingen_lijst", of in een ander model, bijvoorbeeld "groep_queries"?
* soms is het handig om een array met platte gegevens terug te krijgen. In andere gevallen is het prettiger om een array met objecten terug te krijgen. Hoe doe je dit? Maakt model leerlingen_queries dan de objecten "leerling" aan? Wat is hier de correcte manier om het aanmaken van objecten aan te maken?
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$leerling = new Leerling();
$leerling->getAll(); // geef alle studenten
$leerling->getById(2) // geeft leerling terug met id 2
?>
$leerling = new Leerling();
$leerling->getAll(); // geef alle studenten
$leerling->getById(2) // geeft leerling terug met id 2
?>
dit is nu even een platte voorbeeld en als je het echt heel goed zou willen doen dan zou je natuurlijk een klasse hebben die alleen maar het ophalen en teruggeven verzorgt en de andere klasse die de juiste query maakt etc.