GroupedFor ViewHelper <f:groupedFor>
Grouped loop ViewHelper. Loops through the specified values.
The groupBy argument also supports property paths.
Using this ViewHelper 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).
Examples
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>
Copied!
Output:
apple cherry strawberry banana
Copied!
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>
Copied!
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>
Copied!
Source code
Go to the source code of this ViewHelper: GroupedForViewHelper.php (GitHub).
Arguments
The following arguments are available for the groupedFor ViewHelper:
as
-
- Type
- string
- Required
- 1
The name of the iteration variable
each
-
- Type
- array
- Required
- 1
The array or \SplObjectStorage to iterated over
groupBy
-
- Type
- string
- Required
- 1
Group by this property
groupKey
-
- Type
- string
- Default
- 'groupKey'
The name of the variable to store the current group