Typo3 Fluid: встроенная нотация elseif

Есть ли встроенная запись для следующего примера?

<f:if condition="{value}==1">
    <f:then>Value is 1</f:then>
    <f:else if="{value}==2">Value is 2</f:else>
</f:if>

Спасибо за вашу помощь


person Renato Morell    schedule 07.11.2017    source источник


Ответы (2)


вероятно, это будет каскадирование if-viewhelpers:

{f:if(condition:'{value}==1', 
    then:'Value is 1', 
    else:'{f:if(condition:\'{value}=2\', then:\'Value is 2\')}'
)}

с обычным недостатком экранирования строкового разделителя для сложенных встроенных помощников просмотра.

person Bernd Wilke πφ    schedule 08.11.2017
comment
Да, я знаю это! Я думал, что, возможно, будет плоское решение - person Renato Morell; 09.11.2017

ваше условие по умолчанию будет "Значение равно 2", хотя значение может быть и другим... это неверно, во всяком случае, немного более полно:

<f:if condition="{value}==1">
  <f:then>Value is 1</f:then>
  <f:else if="{value}==2">Value is 2</f:else>
  <f:else>Value is not valid</f:else>
</f:if>

простая встроенная аннотация, которая ничего не выводит, если не выполняются два условия:

{f:if(condition:'{value}==1',
  then: 'Value is 1',
  else: '{f:if(condition:\'{value}==2\',then: \'Value is 2\')}'
)}

добавьте предложение else во второе условие:

{f:if(condition:'{value}==1',
  then: 'Value is 1',
  else: '{f:if(condition:\'{value}==2\',
    then: \'Value is 2\',
    else: \'Value is not valid\'
  )}'
)}
person webMan    schedule 07.11.2017
comment
your condition will default to 'Value is 2' although the value might not be - Я этого не вижу. Мой пример просто ничего не показывает, если значение не равно ни 1, ни 2 (как и ожидалось) - person Renato Morell; 09.11.2017
comment
Хорошо, TYPO3 часто меня удивляет, на моем локальном хосте у меня был такой результат, но я хотел дать дополнительную информацию, как насчет встроенной аннотации? это сработало на моем локальном хосте... я исправлю свой ответ... - person webMan; 10.11.2017
comment
Да, встроенная нотация работает так! Я надеялся, что есть способ без вложенности. - person Renato Morell; 10.11.2017