2011-02-09 16 views
32

Quiero hacer un str_replace simple en mi plantilla twig. Soy nuevo en twig y probablemente necesito agregar un filtro nuevo o algo así o para usar el existente. ¿Cómo puedo hacer esto? ¿Dónde puedo encontrar la lista de filtros disponible?str_replace en Twig

+0

¿Qué es exactamente lo que quiere hacer? Hay una serie de filtros y algunos escapes de HTML incorporados en twig ya: http://www.twig-project.org/doc/templates.html – CamelBlues

Respuesta

33

Para reemplazar una cadena que se almacena en las variables ramita:

{% 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

¡Gracias! Los paréntesis alrededor de 'replace_value_var' faltan en la documentación. –

+1

¿Cómo eliminar el espacio vacío? – Guru

+1

Funciona como un encanto. ¡Aclamaciones! rep ++; – cwiggo

23

Utilice esta opción para reemplazar | con - y reemplazar , ancho .:

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

Ejemplo de entrada 31|60, sale como 31-60.

+4

Gracias, esto no es obvio en la documentación actual – Prinsig

+2

@Prinsig de hecho. De la documentación, pensé que solo podrías reemplazar los marcadores de posición. – ohvitorino

5

Además, esto podría ser útil para deshacerse de (UTF-8) caracteres del idioma ...

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

¿Qué tal: 'iconv (" UTF-8 "," ISO-8859-1 // TRANSLIT ", $ text)'? – umpirsky

+2

@umpirsky Hmmm, creo que el código para twig va más o menos así {{data | convert_encoding ('UTF-8', 'iso que quieras')}}, pero no estoy 100% seguro –

+1

Sí, mío era PHP :) – umpirsky