Fluid 模板中的 TYPO3 TypoScript 对象好像条件不起作用

问题描述

在这里获取我的数据:

lib.registriernummer = COA_INT
lib.registriernummer {
  10 = TEXT
  10.data = TSFE:fe_user|user|registriernummer
  10.stdWrap.ifEmpty = empty
}

在我的流体模板中,我可以使用:

{f:cObject(typoscriptObjectPath:'lib.registriernummer') -> f:format.raw()}

输出“33”。

如果我使用条件:

<f:if condition="{f:cObject(typoscriptObjectPath:'lib.registriernummer') -> f:format.raw()} == '33'">
  <f:then>
    number is correct
  </f:then>
  <f:else>
    number is not correct
  </f:else>
</f:if>

输出number is not correct 。这是为什么?

解决方法

您是否尝试过这些变体?

<f:if condition="{f:cObject(typoscriptObjectPath:'lib.registriernummer')->f:format.raw()} == 33">

<f:if condition="'{f:cObject(typoscriptObjectPath:\'lib.registriernummer\')->f:format.raw()}' == '33'">

由于无法缓存比较信息,因此结果块也无法缓存。

要么将块放在(打字稿)视图助手中,要么使模板不缓存。

像这样:

lib.registriernummer = COA_INT
lib.registriernummer {
  10 = TEXT
  10.value = number is not correct
  10.override = number is correct
  10.override.if.equals.data = TSFE:fe_user|user|registriernummer
  10.override.if.value = 33
}

可能你会做的不仅仅是一些文字。 ;-)