检查字符串是否包含VHS 2.4中的子字符串

时间:2016-10-19 06:55:55

标签: string typo3 fluid typo3-6.2.x

如何检查字符串是否包含特定子字符串? 例如。我有一个名为{category.files}的对象数组,并输出每个对象名称。

<f:for each="{category.files}" as="file">
    <p>{file.name}</p>
</f:for>

现在我尝试检查名称是否包含特定的子字符串,如果输出为true?在我的情况下,我搜索子字符串 fire

我找到了VHS方法contains,但我不知道如何使用它,因为没有真正的例子。

在我的案例中它是如何运作的?

<f:for each="{category.files}" as="file">
                                  ???            ???                 ??
    <v:if.string.contains then="[mixed]" else="[mixed]" haystack="{file}" needle="fire">
       <!--output it if found -->

       <!-- else, do nothing -->
    </v:if.string.contains>
</f:for>

换句话说,我尝试在 haystack 中搜索 fire

1 个答案:

答案 0 :(得分:2)

heystack = string to compare
needle   = string to find

如果{file.name}可能有针,你应该这样做:

  <f:for each="{category.files}" as="file">
    <v:condition.string.contains haystack="{file.name}" needle="fire">
      <f:then>
        Needle found
      </f:then>
      <f:else>
        Needle not found
      </f:else>
    </v:condition.string.contains>
  </f:for>

已修改:正如评论中所述,要求的ViewHelper v:if.string.contains已在所使用的版本中重命名为v:condition.string.contains