如何定义一个数字数组并在 for 循环中输出每个数字?
我尝试过这样的:
<f:alias map="{numbers: [1,2,3,4,5,6]}">
<f:for each="{numbers}" as="number">
<p>{number}</p>
</f:for>
</f:alias>
结果:
参数“map”注册为“array”类型,但在视图助手“TYPO3\CMS\Fluid\ViewHelpers\AliasViewHelper”中为“string”类型
像这样:
<f:alias map="{v:iterator.explode(content: '1,2,3,4,5,6')}">
<f:for each="{content}" as="zahl">
<p>{zahl}</p>
</f:for>
</f:alias>
结果: 无输出。
<f:for each="{0:1, 1:2, 2:3, 3:4, 4:5, 5:6, 6:7}" as="foo">{foo}</f:for>
理想的解决方案当且仅当:
这似乎正是您的用例......
然后,也只有到那时,以下才是在性能和最小化复杂性方面的理想解决方案:
<v:iterator.loop count="6" iteration="iteration">
{iteration.index} starts at zero, {iteration.cycle} starts at one.
</v:iterator.loop>
也不要忘记以下几点:
{f:render(section: 'OtherSection', arguments: {iteration: iteration})
-> v:iterator.loop(count: 6, iteration: 'iteration')}
渲染某个部分 X 次最有效的方法是什么 只有
iteration
变量不同。节或部分是表示这种确切类型的代码的最有效方式,并且
解析时内联语法是最有效的。
试试这个:
<f:alias map="{numbers: {1,2,3,4,5,6}}">
<f:for each="{numbers}" as="number">
<p>{number}</p>
</f:for>
</f:alias>
我能够用这段代码解决它:
<html xmlns="http://www.w3.org/1999/xhtml" lang="en"
xmlns:v="http://typo3.org/ns/FluidTYPO3/Vhs/ViewHelpers"
v:schemaLocation="https://fluidtypo3.org/schemas/vhs-master.xsd">
<f:for each="{v:iterator.explode(content: '1,2,3,4,5,6')}" as="number">
<p>{number}</p>
</f:for>
输出:
1
2
3
4
5
6
VHS: Fluid ViewHelpers
(扩展程序密钥 = vhs)。将其写在顶部:
<html xmlns="http://www.w3.org/1999/xhtml" lang="en"
xmlns:v="http://typo3.org/ns/FluidTYPO3/Vhs/ViewHelpers"
v:schemaLocation="https://fluidtypo3.org/schemas/vhs-master.xsd">
我正在使用Typo3 v6.2.25
根据@webman的回答,我在Typo3 V11中成功尝试了以下操作:
<f:alias map="{numbers: {0:1, 1:2, 2:3, 3:4, 4:5, 5:6}}">
<f:for each="{numbers}" as="number">
{number}