目前支持的过滤器包括
date format replace number_format url_encode json_encode convert_encoding title capitalize nl2br upper lower striptags join reverse length sort default keys escape raw merge
{{ post.published_at|date("m/d/Y") }} {{ "now"|date("m/d/Y") }}
{{ post.published_at|date("F jS \\a\\t g:ia") }}注意:经过我的测试,不能输入中文字符,这样写不行。。 {{ 'now'|date("F jS \\上\\午 g:ia") }}
{{ post.published_at|date("m/d/Y", "Europe/Paris") }}
$twig = new Twig_Environment($loader); $twig->getExtension('core')->setDateFormat('d/m/Y', '%d days');
{{ "I like %s and %s."|format(foo, "bar") }} {# returns I like foo and bar if the foo parameter equals to the foo string. #}
{{ "I like %this% and %that%."|replace({'%this%': foo, '%that%': "bar"}) }} {# returns I like foo and bar if the foo parameter equals to the foo string. #}
{{ 200.35|number_format }}另外就是可以用php来修改默认的格式
$twig = new Twig_Environment($loader); $twig->getExtension('core')->setNumberFormat(3, ',', '.');
{{ data|url_encode() }}
{{ data|json_encode() }}
{{ data|convert_encoding('UTF-8', 'iso-2022-jp') }}
{{ 'my first car'|title }} {# outputs 'My First Car' #}
{{ 'my first car'|capitalize }} {# outputs 'My first car' #}
{{ "I like Twig.\nYou will like it too."|nl2br }} {# outputs I like Twig.<br /> You will like it too. #}
{{ [1, 2, 3]|join }} {# returns 123 #} {{ [1, 2, 3]|join('|') }} {# returns 1|2|3 #}
{% for use in users|reverse %} ... {% endfor %}
{% if users|length > 10 %} ... {% endif %}
{% for use in users|sort %} ... {% endfor %}
{{ var|default('var is not defined') }} {{ var.foo|default('foo item on var is not defined') }} {{ var['foo']|default('foo item on var is not defined') }} {{ ''|default('passed var is empty') }}
{% for key in array|keys %} ... {% endfor %}
{{ user.username|escape }} {{ user.username|e }}还可以转义 js
{{ user.username|escape('js') }} {{ user.username|e('js') }}实际上他使用的是php函数 htmlspecialchars
{% autoescape true %} {{ var|raw }} {# var won't be escaped #} {% endautoescape %}
{% set items = { 'apple': 'fruit', 'orange': 'fruit' } %} {% set items = items|merge({ 'peugeot': 'car' }) %} {# items now contains { 'apple': 'fruit', 'orange': 'fruit', 'peugeot': 'car' } #}