Other Filters¶
date¶
The date filter is able to format a date to a given format:
{{ post.published_at|date("m/d/Y") }}
The date filter accepts any date format supported by DateTime and
DateTime instances. For instance, to display the current date, filter the
word “now”:
{{ "now"|date("m/d/Y") }}
date_modify¶
The date_modify filter modifies a date with a given modifier string:
{{ post.published_at|date_modify("+1 day")|date("m/d/Y") }}
The date_modify filter accepts strings (it must be in a format supported
by the strtotime function) or DateTime instances. You can easily combine
it with the date filter for formatting.
format¶
The format filter formats a given string by replacing the placeholders
(placeholders follows the printf notation):
{{ "I like %s and %s."|format(foo, "bar") }}
{# returns I like foo and bar. (if the foo parameter equals to the foo string) #}
replace¶
The replace filter formats a given string by replacing the placeholders
(placeholders are free-form):
{{ "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) #}
url_encode¶
The url_encode filter URL encodes a given string.
json_encode¶
The json_encode filter returns the JSON representation of a string.
title¶
The title filter returns a titlecased version of the value. I.e. words will
start with uppercase letters, all remaining characters are lowercase.
capitalize¶
The capitalize filter capitalizes a value. The first character will be
uppercase, all others lowercase.
upper¶
The upper filter converts a value to uppercase.
lower¶
The lower filter converts a value to lowercase.
striptags¶
The striptags filter strips SGML/XML tags and replace adjacent whitespace by
one space.
join¶
The join filter returns a string which is the concatenation of the strings
in the sequence. The separator between elements is an empty string per
default, you can define it with the optional parameter:
{{ [1, 2, 3]|join('|') }}
{# returns 1|2|3 #}
{{ [1, 2, 3]|join }}
{# returns 123 #}
reverse¶
The reverse filter reverses an array or an object if it implements the
Iterator interface.
length¶
The length filters returns the number of items of a sequence or mapping, or
the length of a string.
sort¶
The sort filter sorts an array.
default¶
The default filter returns the passed default value if the value is
undefined or empty, otherwise the value of the variable:
{{ var|default('var is not defined') }}
{{ var.foo|default('foo item on var is not defined') }}
{{ ''|default('passed var is empty') }}
Note
Read the documentation for the defined and empty tests below to
learn more about their semantics.
keys¶
The keys filter returns the keys of an array. It is useful when you want to
iterate over the keys of an array:
{% for key in array|keys %}
...
{% endfor %}
escape, e¶
The escape filter converts the characters &, <, >, ', and " in
strings to HTML-safe sequences. Use this if you need to display text that
might contain such characters in HTML.
Note
Internally, escape uses the PHP htmlspecialchars function.
raw¶
The raw filter marks the value as safe which means that in an environment
with automatic escaping enabled this variable will not be escaped if raw is
the last filter applied to it.
{% autoescape true %}
{{ var|raw }} {# var won't be escaped #}
{% endautoescape %}
merge¶
The merge filter merges an array or a hash with the value:
{% set items = { 'apple': 'fruit', 'orange': 'fruit' } %}
{% set items = items|merge({ 'peugeot': 'car' }) %}
{# items now contains { 'apple': 'fruit', 'orange': 'fruit', 'peugeot': 'car' } #}