2016-10-17 3 views
0

Как определить массив чисел и вывести каждое число в цикле for?Как определить массив чисел и вывести его?

Я пробовал так:

<f:alias map="{numbers: [1,2,3,4,5,6]}"> 
    <f:for each="{numbers}" as="number"> 
     <p>{number}</p> 
    </f:for> 
    </f:alias> 

Результат:

Аргумент «карта» была зарегистрирована типа «массив», но имеет тип «строка» в вид помощника "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> 

Результат: Нет выхода.

ответ

3
<f:for each="{0:1, 1:2, 2:3, 3:4, 4:5, 5:6, 6:7}" as="foo">{foo}</f:for> 
0

попробовать это:

<f:alias map="{numbers: {1,2,3,4,5,6}}"> 
    <f:for each="{numbers}" as="number"> 
     <p>{number}</p> 
    </f:for> 
</f:alias> 
+0

Хмм, я получаю «Карта аргументов» была зарегистрирована с типом «массив», но имеет тип «строка» в виде вспомогательного «TYPO3 \ CMS \ Fluid \ ViewHelpers \ AliasViewHelper» ' – Black

+0

и этот' {1: 1,2: 2,3: 3,4: 4,5: 5,6: 6} '? Я использовал это только со словами, и в этом случае я работаю с ключом ... мы говорим v7.2.11? – webMan

+0

Нет, я получаю ту же ошибку. Я использую v6.2.25 – Black

0

Я был в состоянии решить с помощью этого кода:

<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

1

Идеальное решение если и только если:

  • Вы можете использовать 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, отличающейся друг от друга. Разделы или частичные файлы являются наиболее эффективным способом представления этого точного типа кода, а встроенный синтаксис является наиболее эффективным при разборе.