Attention

TYPO3 v9 has reached its end-of-life September 30th, 2021 and is not maintained by the community anymore. Looking for a stable version? Use the version switch on the top left.

You can order Extended Long Term Support (ELTS) here: TYPO3 ELTS.

groupedFor

Grouped loop view helper. Loops through the specified values.

The groupBy argument also supports property paths.

= Examples =

<code title="Simple"> <f:groupedFor each="{0: {name: 'apple', color: 'green'}, 1: {name: 'cherry', color: 'red'}, 2: {name: 'banana', color: 'yellow'}, 3: {name: 'strawberry', color: 'red'}}" as="fruitsOfThisColor" groupBy="color">

<f:for each="{fruitsOfThisColor}" as="fruit">

{fruit.name}

</f:for>

</f:groupedFor> </code> <output> apple cherry strawberry banana </output>

<code title="Two dimensional list"> <ul>

<f:groupedFor each="{0: {name: 'apple', color: 'green'}, 1: {name: 'cherry', color: 'red'}, 2: {name: 'banana', color: 'yellow'}, 3: {name: 'strawberry', color: 'red'}}" as="fruitsOfThisColor" groupBy="color" groupKey="color">
<li>

{color} fruits: <ul>

<f:for each="{fruitsOfThisColor}" as="fruit" key="label">

<li>{label}: {fruit.name}</li>

</f:for>

</ul>

</li>

</f:groupedFor>

</ul> </code> <output> <ul>

<li>green fruits
<ul>

<li>0: apple</li>

</ul>

</li> <li>red fruits

<ul>

<li>1: cherry</li>

</ul> <ul>

<li>3: strawberry</li>

</ul>

</li> <li>yellow fruits

<ul>

<li>2: banana</li>

</ul>

</li>

</ul> </output>

Note: Using this view helper can be a sign of weak architecture. If you end up using it extensively you might want to fine-tune your "view model" (the data you assign to the view).

Arguments

each

DataType

mixed

Required

false

Description

The array or SplObjectStorage to iterated over

as

DataType

string

Required

false

Description

The name of the iteration variable

groupBy

DataType

string

Required

false

Description

Group by this property

groupKey

DataType

string

Default

'groupKey'

Required

false

Description

The name of the variable to store the current group