从TYPO3 8.7开始,Fluid if-ViewHelper可以进行字符串、数字和数组比较,无需将字符串放入数组中来实现。然而,它不支持通配符或正则表达式(如果您编写自定义的PHP ViewHelper,则天空是极限)。
支持的比较运算符包括:==、!=、<、<=、>、>= 和 %。还有逻辑运算符&&和||的支持。您可以使用!(例如!{enable})来否定布尔值。
我听说文档团队正在努力更新和重新组织Fluid文档。同时,这个页面有许多有用的提示和技巧:
https://usetypo3.com/24-fluid-tips.html
示例(使用混合标记和内联语法):
1. 字符串比较: 比较变量和字符串
<f:variable name="foo">stuff</f:variable>
<f:if condition="{foo} == 'stuff'">
<f:render partial="FooPartial" arguments="{foo: foo}" />
</f:if>
- 比较整数(流式行内语法)
{f:variable(name: 'bar', value: 123)}
{f:variable(name: 'baz', value: 50)}
{f:if(condition: '{bar} > {baz}', then: 'This will print')}
- 布尔运算符: &&, ||
<f:if condition="{bar} > {baz} && {baz} < 100">This will print.</f:if>
- 字符串 "false" 将被视为布尔值 false (Fluid 行内语法)
{f:variable(name: 'untrue', value: 'false')}
{f:if(condition: untrue, then: 'Will not print', else: 'Will print')}