現在サポートされているフィルターは次のとおりです
日付形式 数値形式を置換 url_encode json_encode Convert_encoding タイトルを大文字にする nl2br 上位 下位 ストリップタグ 結合 逆長ソート デフォルトキー エスケープ raw マージ
日付フィルター
バージョン 1.1 ではタイム ゾーンのサポートが追加され、バージョン 1.5 ではデフォルトの日付形式が追加されます。
このフィルターは PHP の date 関数と限りなく似ています
{{ post.published_at|date("m/d/Y") }}
{{ "現在"|日付("m/d/Y") }}
{{ post.published_at|date("m/d/Y") }}
{{ "今"|日付("m/d/Y") }}
形式で文字を出力したい場合は、各文字の前に \
を入力する必要があります
{{ post.published_at|date("F jS \a\t g:ia") }}
{{ post.published_at|date("F jS \a\t g:ia") }} 注: テスト後、中国語の文字は入力できないため、このように書いても機能しません。 。 {{ 'now'|date("F jS \上\午後 g:ia") }}
時間帯指定可能です
{{ post.published_at|date("m/d/Y", "ヨーロッパ/パリ") }}
{{ post.published_at|date("m/d/Y", "ヨーロッパ/パリ") }}
指定したフォーマット文字列がサポートされていない場合は、デフォルトのフォーマット (F j, Y H:i) が自動的に使用されます。このデフォルトのフォーマットはコード
で変更できます。
$twig = 新しい Twig_Environment($loader);
$twig->getExtension('core')->setDateFormat('d/m/Y', '%d 日');
$twig = 新しい Twig_Environment($loader);
$twig->getExtension('core')->setDateFormat('d/m/Y', '%d days');
フォーマットフィルター
{{ "%s と %s が好きです。"|format(foo, "bar") }}
{# は foo と bar が好きです
を返します
foo パラメータが foo 文字列と等しい場合 #}
{{ "%s と %s が好きです。"|format(foo, "bar") }}
{# は foo と bar が好きですを返します
フィルターを交換する
これを自分で見てください{{ "%this% と %that% が好きです。"|replace({'%this%': foo, '%that%': "bar"}) }}
{# は foo と bar が好きです
を返します
foo パラメータが foo 文字列と等しい場合 #}
{{ "%this% と %that% が好きです。"|replace({'%this%': foo, '%that%': "bar"}) }}
{# は foo と bar が好きですを返します
foo パラメータが foo 文字列と等しい場合。
数値形式フィルター
PHP関数number_formatのラッパーです。関数リファレンスを直接参照してください
{{ 200.35|数値形式 }}
{{ 200.35|number_format }} さらに、php を使用してデフォルトの形式を変更することもできます
$twig = 新しい Twig_Environment($loader);
$twig->getExtension('core')->setNumberFormat(3, ',', '.');
$twig = 新しい Twig_Environment($loader);
$twig->getExtension('core')->setNumberFormat(3, ',', '.');
url_encode フィルター
これはurlencode関数を直接使用しています
{{ data|url_encode() }}
{{ data|url_encode() }}
json_encode フィルター
json_encode 関数を直接使用します
{{ data|json_encode() }}
{{ data|json_encode() }}
Convert_encoding フィルター
バージョン 1.4 の新しいコンテンツ
文字列を変換します。最初のパラメータは出力エンコード、2 番目のパラメータは入力エンコードです
この関数は iconv または mbstring に依存するため、少なくとも 1 つをインストールする必要があります
{{ data|convert_encoding('UTF-8', 'iso-2022-jp') }}
タイトルフィルター
各単語の最初の文字を大文字にします。
{{ '私の最初の車'|タイトル }}
{# 'My First Car' を出力 #}
{# 'My First Car' を出力 #}
大文字フィルター
文字列を最初の文字が大文字で残りの文字が小文字になる形式に変換します
{{ '私の最初の車'|大文字で書く }}
{{ '私の最初の車'|大文字で書く }}
{# '私の最初の車' を出力します #}
nl2brフィルター
改行文字 n を
に変更します
{{ "私は Twig が好きです。nあなたもきっと気に入ると思います。"|nl2br }}
小枝が好きです。
#}
{{ "私は Twig が好きです。nあなたもそれを好きになるでしょう。"|nl2br }}
{# 個の出力
私は小枝が好きです。
あなたもきっと気に入るはずです。
#}
上下フィルター
文字列を大文字と小文字にします
ストリップタグフィルター
ストリップタグ関数は直接使用されます
フィルターに参加
これは Python の結合と同じで、配列の内容を結合し、指定した文字列で分割するために使用されます。
{{ [1, 2, 3]|参加 }}
{# は 123 # を返します}
{{ [1, 2, 3]|結合('|') }}
{# は 1|2|3 # を返します}
{{ [1, 2, 3]|参加 }}
{# 123 # を返します}
{{ [1, 2, 3]|結合('|') }}
{# は 1|2|3 # を返します}
逆フィルター
配列、または Iterator インターフェースを実装するオブジェクトを反転します
{ユーザーで使用する%|リバース %}
...
{% 終了の %}
{ユーザーで使用する%|リバース%}
...
{% 終了用 %}
長さフィルター
配列または文字列の長さを返します
{ユーザーの場合|長さ > 10 %}
...
{% endif %}
{ユーザーの場合|長さ > 10 %}
...
{% endif %}
並べ替えフィルター
ソート機能を使っています
{ユーザーで使用する%|並べ替え%}
...
{% 終了の %}
{ユーザーで使用する%|並べ替え%}
...
{% 終了用 %}
デフォルトのフィルター
変数が未定義または空の場合、プリセットの内容が返されます
{{ var|default('var が定義されていません') }}
{{ var.foo|default('var の foo 項目が定義されていません') }}
{{ var['foo']|default('var の foo 項目が定義されていません') }}
{{ ''|default('渡された変数は空です') }}
{{ var|default('var が定義されていません') }}
{{ var.foo|default('var の foo 項目が定義されていません') }}
{{ var['foo']|default('var の foo 項目が定義されていません') }}
{{ ''|default('渡された変数は空です') }}
キーフィルター
リターンキー配列
{% 配列内のキー|キー %}
...
{% 終了の %}
{% 配列内のキー|キー %}
...
{% 終了用 %}
エスケープフィルター
主なエスケープは < > で、省略形は e です。
{{ user.username|escape }}
{{ user.username|e }}
{{ user.username|escape }}
{{ user.username|e }} は js をエスケープすることもできます
{{ user.username|escape('js') }}
{{ user.username|e('js') }}
{{ user.username|escape('js') }}
{{ user.username|e('js') }} 実際、彼は php 関数 htmlspecialchars を使用しています
生フィルター
autoescape タグ内でエスケープする必要のないコンテンツをマークするために使用されます。
{% 自動エスケープ true %}
{{ var|raw }} {# var はエスケープされません #}
{% 終了自動エスケープ %}
{% 自動エスケープ true %}
{{ var|raw }} {# var はエスケープされません #}
{% endautoescape %}
配列をマージするために使用されます
{% セットアイテム = { 'リンゴ': 'フルーツ', 'オレンジ': 'フルーツ' } %}
{% set itemsitems = items|merge({ 'peugeot': 'car' }) %}
{# 個のアイテムには { 'apple': 'fruit', 'orange': 'fruit', 'peugeot': 'car' } #}
が含まれるようになりました
jiaochangyunさんのコラムより抜粋