2011-02-09 3 views
32

Я хочу сделать простой str_replace в моем шаблоне ветки. Я новичок в ветке, и, вероятно, мне нужно добавить новый фильтр или что-то подобное или использовать существующие. Как я могу это сделать? Где я могу найти список доступных фильтров?str_replace in Twig

+0

Что именно вы хотите сделать? Есть несколько фильтров, и некоторые HTML-экраны уже встроены в веточку: http://www.twig-project.org/doc/templates.html – CamelBlues

ответ

33

Чтобы заменить строку, которая хранится в прута переменных:

{% set twig_content_variable= 'Testing to replace content'%} 
{% set replace_value_var= 'Testing' %} 
{% set replace_with_value_var = 'Testing complete' %} 

{{ twig_content_variable|replace({ (replace_value_var): replace_with_value_var }) }} 
+7

Спасибо! Круглые скобки вокруг 'replace_value_var' отсутствуют в документации. –

+1

Как удалить пустое место? – Guru

+1

Работает как очарование. Ура! респ ++; – cwiggo

23

Используйте эту опцию для замены | с - и заменить , ширина .:

{{age|replace({'|': "-", "," : "."})}} 

Пример ввода 31|60, выдается как 31-60.

+4

Спасибо, это неочевидно в текущей документации – Prinsig

+2

@Prinsig. Из документации я думал, что вы можете заменить только заполнители. – ohvitorino

5

Кроме того, это может быть полезно для избавления от (UTF-8) язык символов ...

{{some_string|replace({'ć':'c','č':'c','š':'s','ž':'z','đ':'d','Ć':'C','Č':'C','Š':'S','Ž':'Z','Đ':'D'})}} 
+3

Как насчет: 'iconv (« UTF-8 »,« ISO-8859-1 // TRANSLIT », $ text)'? – umpirsky

+2

@umpirsky Хммм, я думаю, что код для ветки имеет значение {{data | convert_encoding ('UTF-8', 'iso that you want')}}, но я не уверен на 100% –

+1

Да, мой был PHP. :) – umpirsky