如何将字符串与TYPO3 Fluid中的变量进行比较

问题描述 投票:1回答:2

我想做一个简单的比较,比如相当于:

if ($somevar === 'somestring')

现在,我已经找到了一些示例,其中这样做:

<f:if condition="{somevar} == 'somestring'"> 
...

TYPO3核心9.5中还有很多地方,example

但官方文档告诉我们,我们必须使用基于数组的奇怪的解决方法:

不允许在XX / YY处使用字符串,但是,暂时可以通过比较数组来实现字符串比较

If ViewHelper

由于复杂的实现,使用Fluid还不能与字符串(如....)进行比较。

(Qazxswpoi)

不管它是什么意思 ...

为了避免问为什么:在TYPO3 9中对字符串和变量进行比较的推荐方法是什么?从什么时候开始?

typo3 fluid view-helpers typo3-9.x
2个回答
1
投票

从TYPO3 8.7开始,Fluid if-ViewHelper可以进行字符串,数字和数组比较,而无需将字符串放入数组。但是,不支持globbing或正则表达式(如果在PHP中编写自定义ViewHelper,则天空是极限)。

支持的比较运算符是:==,!=,<,<=,>,> =和%。还支持逻辑运算符&&和||。你可以用一个布尔值来否定! (比如!{enable})。

我听说文档团队正在努力更新和重新组织Fluid文档。与此同时,这个页面有许多有用的提示和技巧:Extbase / Fluid

示例(使用标记和内联语法的混合):

https://usetypo3.com/24-fluid-tips.html

0
投票

我认为文档不是最新的。

在早期版本(少于7个)中,无法比较字符串。由于需要一种解决方法并在阵列中找到,因此它以多种方式进行了推广。所以你发现网络充满了它。

今天可以比较字符串,也可以比较1: <f:variable name="foo">stuff</f:variable> <f:if condition="{foo} == 'stuff'"> <f:render partial="FooPartial" arguments="{foo: foo}" /> </f:if> 2: {f:variable(name: 'bar', value: 123)} {f:variable(name: 'baz', value: 50)} {f:if(condition: '{bar} > {baz}', then: 'This will print')} 3: <f:comment>&& and ||, too:</f:comment> <f:if condition="{bar} > {baz} && {baz} < 100">This will print.</f:if> 4: <f:comment>The string "false" will evaluate to boolean false:</f:comment> {f:variable(name: 'untrue', value: 'false')} {f:if(condition: untrue, then: 'Will not print', else: 'Will print')} 和'AND'多个表达式。

© www.soinside.com 2019 - 2024. All rights reserved.