Collectievelden
Naast gewone velden kun je in een database ook collecties aanmaken. Een collectie kun je zien als een tweede laag binnen je database: een mini-database waarin je meerdere records kunt opslaan die bij één profiel horen.
Dit is handig wanneer een profiel meerdere gerelateerde gegevens kan bevatten.
Enkele voorbeelden:
- Een database met klanten, waarbij iedere klant een collectie kinderen heeft.
- Een database met bedrijven, waarbij ieder bedrijf een collectie medewerkers heeft.
Een database kan meerdere collecties bevatten. Iedere collectie heeft, net als een gewone database, een eigen verzameling velden. Je kunt daarin bijvoorbeeld velden aanmaken zoals:
- Voornaam
- Achternaam
- E-mailadres
- Telefoonnummer
- Geboortedatum
Zo kun je per profiel een onbeperkt aantal gerelateerde records opslaan, terwijl de gegevens overzichtelijk gestructureerd blijven.
Gebruik in Smarty
Een collectie kan meerdere records per profiel bevatten, bijvoorbeeld meerdere
bestellingen of meerdere medewerkers. Daarom is een collectie binnen het
$profile-object beschikbaar als een lijst met records.
In Smarty doorloop je die lijst met een
foreach-lus. Stel dat een profiel een
collectie medewerkers heeft met de velden voornaam en verjaardag:
{foreach $profile.medewerkers as $medewerker}
{$medewerker.voornaam}
{$medewerker.verjaardag}
{/foreach}
Binnen de lus vertegenwoordigt $medewerker één record uit de collectie. De
naam achter $medewerker. komt overeen met de naam van het veld in de collectie.
Meer informatie over personalisatie via Smarty lees je in het artikel over variabelen en databronnen.