【问题标题】:Check if string contains substring in VHS 2.4检查字符串是否包含 VHS 2.4 中的子字符串
【发布时间】:2016-10-19 06:55:54
【问题描述】:

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

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

现在我尝试检查名称是否包含特定的子字符串,如果为真则输出它?就我而言,我搜索子字符串 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

【问题讨论】:

    标签: string typo3 fluid typo3-6.2.x


    【解决方案1】:
    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>
    

    已编辑:如 cmets 中所述,所询问的 ViewHelper v:if.string.contains在使用的版本中已重命名为 v:condition.string.contains

    【讨论】:

    • 谢谢!不幸的是我现在不能测试它,因为我得到了Could not analyse class:FluidTYPO3\Vhs\ViewHelpers\If\String\ContainsViewHelper maybe not loaded or no autoloader?。我尝试在部分扩展中使用 vhs 代码。也许我必须先包括 VHS?
    • 尝试在模板开头添加{namespace v=FluidTYPO3\Vhs\ViewHelpers}
    • 嗯,我试过了,但还是一样的错误信息。我是否必须在 ext_localconf.php 或某处包含 VHS 以便扩展程序可以使用它?
    • @EdwardBlack 您使用的是什么版本的vhs?没有更多的v:ifViewHelpers,只有v:conditionv:condition.string.contains
    • 嗯,我用的是v2.4.0
    猜你喜欢
    • 2011-11-09
    • 2013-05-18
    • 2021-12-20
    • 2014-12-10
    • 1970-01-01
    • 2014-11-22
    • 2013-02-05
    • 1970-01-01
    • 2021-12-14
    相关资源
    最近更新 更多