Flow3-Fluid迭代按属性分组的对象

时间:2014-08-03 08:53:09

标签: for-loop fluid typo3-flow

我有一个对象列表(问题项),每个对象都有一个名为category和title的属性。 (对象列表按其类别属性排序)

使用此流体模板,我想迭代问题项目:

<f:for each="{questions}" as="question">
   <!-- every time category changes, display it as a new headline ??? -->
   <!-- if (question.category != previousQuestion.category) ?.....? -->
   <span>{question.title}</span>
</f:for>

如果for中的类别属性发生了变化,我该怎么检查? 输出应该是这样的:

  • 类别-A
    • 问题
    • 问题
  • 类别-B
    • 问题
  • 类别-C
    • 问题
    • 问题
    • 问题
    • ...

1 个答案:

答案 0 :(得分:0)

您正在寻找f:groupedFor viewhelper:http://docs.typo3.org/typo3cms/ExtbaseGuide/Fluid/ViewHelper/GroupedFor.html

<f:groupedFor each="{questions}" as="categoryQuestion" groupBy="category" groupKey="category">
    <h2>{category}</h2>
    <f:for each="{categoryQuestion}" as="question">
        <span>{question.title}</span>
    </f:for>
</f:groupedFor>

使用<f:if> viewhelper的方法不会起作用,因为没有真正的模板变量,只有xml-scoped&#34;常量&#34;,所以即使你定义了previousQuestion通过<f:alias> viewhelper,您无法将其与当前值进行比较。