2016-10-19 56 views
0

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

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

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

我发现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> 

因此,换句话说,我试图寻找草垛

回答

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> 

编辑:由于在评论中的版本中提到的要求视图助手v:if.string.contains更名为v:condition.string.contains这是用来。

+0

谢谢!不幸的是,我现在无法测试,因为我得到了'无法分析类:FluidTYPO3 \ Vhs \ ViewHelpers \ If \ String \ ContainsViewHelper可能没有加载或没有自动加载器?'。我试图在部分扩展名中使用vhs代码。也许我必须首先包含VHS? – Black

+1

尝试添加'''{命名空间V = FluidTYPO3 \ VHS \ ViewHelpers}'''你的模板 –

+0

嗯开始时,我尝试过,但还是同样的错误消息。我是否必须在'ext_localconf.php'或其他地方包含VHS,以便扩展可以使用它? – Black