如何定义数字数组并输出它?
How to define array of numbers and output it?
如何定义一个数字数组并在 for 循环中输出每个数字?
我这样试过:
<f:alias map="{numbers: [1,2,3,4,5,6]}">
<f:for each="{numbers}" as="number">
<p>{number}</p>
</f:for>
</f:alias>
结果:
The argument "map" was registered with type "array", but is of type "string" in view helper "TYPO3\CMS\Fluid\ViewHelpers\AliasViewHelper"
像这样:
<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: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
<f:for each="{0:1, 1:2, 2:3, 3:4, 4:5, 5:6, 6:7}" as="foo">{foo}</f:for>
理想的解决方案如果且仅当:
- 您使用 VHS。
- 您希望数字从 0 或 1 开始到最大值;或使用这两个起始索引计算的数字(TYPO3 8.0+ 原生支持 Fluid 中的数学表达式,早期版本需要 VHS)。
- 您想循环数字,而不是将它们作为数组使用。
这似乎正是您的用例...
然后,并且只有这样,以下才是在性能和最小化复杂性方面的理想解决方案:
<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
变量不同。部分或部分是表示这种确切代码类型的最有效方式,并且
解析时内联语法效率最高
如何定义一个数字数组并在 for 循环中输出每个数字?
我这样试过:
<f:alias map="{numbers: [1,2,3,4,5,6]}">
<f:for each="{numbers}" as="number">
<p>{number}</p>
</f:for>
</f:alias>
结果:
The argument "map" was registered with type "array", but is of type "string" in view helper "TYPO3\CMS\Fluid\ViewHelpers\AliasViewHelper"
像这样:
<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: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
<f:for each="{0:1, 1:2, 2:3, 3:4, 4:5, 5:6, 6:7}" as="foo">{foo}</f:for>
理想的解决方案如果且仅当:
- 您使用 VHS。
- 您希望数字从 0 或 1 开始到最大值;或使用这两个起始索引计算的数字(TYPO3 8.0+ 原生支持 Fluid 中的数学表达式,早期版本需要 VHS)。
- 您想循环数字,而不是将它们作为数组使用。
这似乎正是您的用例...
然后,并且只有这样,以下才是在性能和最小化复杂性方面的理想解决方案:
<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
变量不同。部分或部分是表示这种确切代码类型的最有效方式,并且
解析时内联语法效率最高