2016-10-19 6 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> 

Отредактировано: Как уже упоминался в комментариях попросили ViewHelper v:if.string.contains было переименована в v:condition.string.contains в версии, которая использовалась ,

+0

Спасибо! К сожалению, я не могу проверить это прямо сейчас, потому что я получаю 'Невозможно проанализировать класс: FluidTYPO3 \ Vhs \ ViewHelpers \ If \ String \ ContainsViewHelper, возможно, не загружен или нет автозагрузчика?'. Я попытался использовать код vhs в частичном расширении. Может быть, мне нужно сначала включить VHS? – Black

+1

Попробуйте добавить '' '{namespace v = FluidTYPO3 \ Vhs \ ViewHelpers}' '' в начале вашего шаблона –

+0

Хмм, я попробовал, но все тот же сообщение об ошибке. Должен ли я включать VHS в 'ext_localconf.php' или где-нибудь, чтобы расширение могло его использовать? – Black

Смежные вопросы