TYPO3 v12.4 Fluid模板:如何基于整数变量实现指定次数循环?
在TYPO3 v12.4 Fluid模板中基于整数变量控制循环次数
你可以通过以下两种方式实现基于整数变量{Records.numberStars}(1-5)控制循环次数:
方法1:使用f:iterator.range ViewHelper(推荐)
TYPO3 v10及以上版本支持f:iterator.range,它可以生成指定范围的数组,直接用这个数组作为循环的数据源,循环次数就是变量的数值:
<f:for each="{f:iterator.range(start: 1, end: Records.numberStars)}" as="star"> <f:render partial="Icon" /> </f:for>
这个ViewHelper会生成从1到{Records.numberStars}的连续整数数组,循环每一次都会渲染一次图标,刚好满足次数要求。
方法2:固定循环范围+迭代器判断
如果不想用额外的ViewHelper,可以固定循环5次(因为变量范围是1-5),通过迭代器的索引判断是否继续渲染:
<f:for each="{0:1, 1:2, 2:3, 3:4, 4:5}" as="dummy" iteration="iterator"> <f:if condition="{iterator.index + 1} <= {Records.numberStars}"> <f:render partial="Icon" /> </f:if> </f:for>
这里迭代器的index从0开始,加1后和目标次数比较,满足条件时渲染图标,最多循环5次,实际渲染次数由{Records.numberStars}控制。
原代码问题说明
你之前的代码依赖{record.data.stars}数组,但当前需求是基于单个整数变量控制次数,原逻辑没有对应的数组数据源,因此无法正常工作。
内容的提问来源于stack exchange,提问作者Mohamed Masmoudi
相关产品推荐
相关产品推荐

