流体:if - then - elseif - else

时间:2015-04-05 19:34:34

标签: typo3 fluid

我对流体有点新意,我想在Fluid中制作以下php语句。

if ($var == 'something') {
   // do something
} elseif ($other-var == 'something else') {
   // do something else
} else {
   // do then the other thin
}

我怎样才能在流体中做到这一点?我没有在文档中看到elseif语句。

2 个答案:

答案 0 :(得分:15)

自TYPO3 8LTS

从版本8开始,TYPO3使用独立版本的流体,这是一个非常发达的版本,并获得了大量新功能,如elseif

<f:if condition="{var} == 'something'">
    <f:then>do something</f:then>
    <f:else if="{other-var} == 'something else'">do something else</f:else>
    <f:else>do the other thing</f:else>
</f:if>

此外还支持这样的语法:

<f:if condition="{something} || {someOtherThing}">
    Something or someOtherThing
</f:if>

直到并包括TYPO3 7LTS

使用Plain Fluid,如果ViewHelper可以嵌套两个:

<f:if condition="{var} == 'something'">
    <f:then>
       // do something
    </f:then>
    <f:else>
        <f:if condition="{other-var} == 'something else'">
            <f:then>
                // do something else
            </f:then>
           <f:else>
               // do then the other thing
           </f:else>
        </f:if>
    </f:else>
</f:if>

或者您可以实现自己的ViewHelper或使用像VHS这样的ViewHelper库,它们具有更优雅的ViewHelper。

答案 1 :(得分:0)

Typo3 7 LTS中存在AND和OR的可能性:

http://typo3blogger.de/fluid-ifviewhelper-conditions-verknupfen/

AND:

<f:if condition="{0: value1, 1: value2} == {0: myValue1, 2: myValue2}"> 
    <!-- your code-->
</f:if>

OR(在检查至少一个变量不为空的示例中):

<f:if condition="{0: value1, 1: value2} != {0: 0, 2: 0}"> 
    <!-- your code-->
</f:if>

希望能有所帮助。