Om door een lijst van gegevens te gaan kan gebruikt worden van een foreach statement.
foreach, foreachelse
{{foreach $items as $item}}
{{$item}}
{{/foreach}}
{{foreachelse}}
Geen items gevonden
{{/foreach}}
Argumenten
Daarbij kan gebruikt gemaakt worden van de volgende argumenten in een foreach:
Argument | Toelichting |
---|
from | The array/lijst waar doorheen gelopen moet worden |
key | De sleutel van de huidige array element waar doorheen wordt gelopen |
item | De waarde van huidige array element waar doorheen wordt gelopen |
name | De naam van de foreach. Deze naam kan gebruikt worden om eigenschappen van de iteratie in de foreach op te halen, zoals: - index: Geeft de huidige iteratie-index terug (begint bij 0).
- iteration: Geeft het huidige iteratietelling terug (begint bij 1)
- first: Controleert of het de eerste iteratie is (retourneert true of false)
- last: Controleert of het de laatste iteratie is (retourneert true of false)
- total: Geeft het totale aantal iteraties terug.
- show: Geeft het aantal iteraties weer dat zichtbaar is op de huidige pagina (gebruikt bij paginering)
|
Voorbeelden
Zie het onderstaand voorbeeld waarbij een lijst met producten wordt doorlopen:
foreach
{{$producten = [6351,23122,392367]}}
<ul>
{{foreach from=$producten name=products key=key item=data}}
<li>{{$key}}: {{$data}}</li>
{{foreachelse}}
<li>Er zijn geen producten beschikbaar</li>
{{/foreach}}
</ul>
Uitkomst
<ul>
<li>0: 6351</li>
<li>1: 23122</li>
<li>2: 392367</li>
</ul>
foreach met sort en filter
Bij een foreach kan gebruik gemaakt worden van de modifiers sort en filter om de lijst/array met gegevens te sorteren of specifieke gegevens te filteren.
{{foreach from=$producten|sort:'product_id':'DESC'|filter:'category':'Jeans' name=products key=key item=data}}
{{$data}}
{{/foreach}}
first
In sommige gevallen kan het wenselijk zijn om te weten wanneer de foreach de eerste rij uit de lijst doorloopt. Dit kan je bepalen met behulp van de first parameter welke de waarde TRUE zal bevatten als het de laatste rij betreft;
{{$smarty.foreach.<naam foreach>.first}}
foreach first
{{$producten = [6351,23122,392367]}}
{{foreach from=$producten name=products key=key item=data}}
{{if $smarty.foreach.products.first}}
Hieronder een overzicht van de bekeken producten;
{{/if}}
{{$data}}
{{foreachelse}}
Er zijn geen producten beschikbaar
{{/foreach}}
Uitkomst
Hieronder een overzicht van de bekeken producten;
6351
23122
392367
index
De index bevat de huidige lijst index welke wordt doorlopen, welke start bij 0;
{{$smarty.foreach.<naam foreach>.index}}
foreach index
{{$producten = [6351,23122,392367]}}
{{foreach from=$producten name=products key=key item=data}}
{{if $smarty.foreach.products.index eq 0}}
Hieronder een overzicht van de bekeken producten;
{{/if}}
{{$data}}
{{foreachelse}}
Er zijn geen producten beschikbaar
{{/foreach}}
Uitkomst
Hieronder een overzicht van de bekeken producten;
6351
23122
392367
last
In sommige gevallen kan het wenselijk zijn om te weten wanneer de foreach de laatste rij uit de lijst doorloopt. Dit kan je bepalen met behulp van de last parameter welke de waarde TRUE zal bevatten als het de laatste rij betreft;
{{$smarty.foreach.<naam foreach>.last}}
foreach last
{{$producten = [6351,23122,392367]}}
{{foreach from=$producten name=products key=key item=data}}
{{$data}}{{if NOT $smarty.foreach.products.last}},{{/if}}
{{foreachelse}}
Er zijn geen producten beschikbaar
{{/foreach}}
Uitkomst
6351,
23122,
392367