TYPO3 - 复杂的流体条件 f:if 在 8.7 中不起作用
TYPO3 - Complex fluid condition f:if not working in 8.7
我在 8.7 中尝试了一个复杂的 f:if 条件,如下所述:https://docs.typo3.org/typo3cms/ExtbaseGuide/Fluid/ViewHelper/If.html
...但我所有的尝试都失败了(无效):
<h3 class="record-title" id="title"><f:if condition="{record.type}!='medium' || {record.type}!='large'">{record.firstname} - </f:if>{record.name}</h3>
<h3 class="record-title" id="title"><f:if condition="{0:record.type,1:record.type}!={0:medium,1:large}">{record.firstname} - </f:if>{record.name}</h3>
<h3 class="record-title" id="title"><f:if condition="{0:record.type,1:record.type}!={0:'medium',1:'large'}">{record.firstname} - </f:if>{record.name}</h3>
...相反我需要这样做(工作):
<h3 class="record-title" id="title">
<f:if condition="{record.type}!='medium'">
<f:if condition="{record.type}!='large'">
{record.firstname} -
</f:if>
</f:if>
{record.name}
</h3>
为什么它不像描述的那样工作?我正在使用 8.7.16 ...
您的第一个条件可以正常工作,但它与适用于您的示例不相等,例如嵌套 <f:if>
的工作方式与 &&
相同,而您的第一个条件使用 ||
。
第二种情况缺少引号。
第三总是 return true
,因为你将 ['X', 'X']
与 ['medium', 'large']
进行比较。如果 X == 'medium'
那么 X != 'large'
- 别无他法。
要使其正常工作,您只需将第一个条件中的 ||
更改为 &&
。
<h3 class="record-title" id="title">
<f:if condition="{record.type}!='medium' && {record.type}!='large'">{record.firstname} - </f:if>
{record.name}
</h3>
我在 8.7 中尝试了一个复杂的 f:if 条件,如下所述:https://docs.typo3.org/typo3cms/ExtbaseGuide/Fluid/ViewHelper/If.html
...但我所有的尝试都失败了(无效):
<h3 class="record-title" id="title"><f:if condition="{record.type}!='medium' || {record.type}!='large'">{record.firstname} - </f:if>{record.name}</h3>
<h3 class="record-title" id="title"><f:if condition="{0:record.type,1:record.type}!={0:medium,1:large}">{record.firstname} - </f:if>{record.name}</h3>
<h3 class="record-title" id="title"><f:if condition="{0:record.type,1:record.type}!={0:'medium',1:'large'}">{record.firstname} - </f:if>{record.name}</h3>
...相反我需要这样做(工作):
<h3 class="record-title" id="title">
<f:if condition="{record.type}!='medium'">
<f:if condition="{record.type}!='large'">
{record.firstname} -
</f:if>
</f:if>
{record.name}
</h3>
为什么它不像描述的那样工作?我正在使用 8.7.16 ...
您的第一个条件可以正常工作,但它与适用于您的示例不相等,例如嵌套 <f:if>
的工作方式与 &&
相同,而您的第一个条件使用 ||
。
第二种情况缺少引号。
第三总是 return true
,因为你将 ['X', 'X']
与 ['medium', 'large']
进行比较。如果 X == 'medium'
那么 X != 'large'
- 别无他法。
要使其正常工作,您只需将第一个条件中的 ||
更改为 &&
。
<h3 class="record-title" id="title">
<f:if condition="{record.type}!='medium' && {record.type}!='large'">{record.firstname} - </f:if>
{record.name}
</h3>