如何定义数字数组并输出它?

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
  1. 确保您已安装扩展 VHS: Fluid ViewHelpers(扩展密钥 = vhs)。
  2. 确保在部分内容中包含扩展名。

在顶部写下:

<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 变量不同。部分或部分是表示这种确切代码类型的最有效方式,并且 解析时内联语法效率最高