twig
基本テンプレートの構文
サーチ…
前書き
基本的なテンプレート構文の説明
変数へのアクセス
Twigテンプレートでは、変数には二重中括弧{{ variableName }}
を使用してアクセスできます。
グリーティングユーザーの基本例
<!DOCTYPE html>
<html>
<body>
<span>Hello {{ name }}</span>
</body>
</html>
配列要素へのアクセス
パラメーターとしてのTwigは配列を受け取ることができます。配列の特定の要素にアクセスするには、通常のPHP配列のアクセス括弧表記{{ array[key] }}
を使用できます。
arrayをパラメータとして使用するように変更された前の例
<!DOCTYPE html>
<html>
<body>
<span>Hello {{ user['name'] }}</span>
</body>
</html>
オブジェクトのプロパティへのアクセス
オブジェクトもパラメータとしてテンプレートに渡すことができます。 'Dot'(。)表記は、特定のオブジェクトプロパティ{{ object.propertyName }}
にアクセスするために使用されます。
パラメータとしてobjectを使用する同じ例
<!DOCTYPE html>
<html>
<body>
<span>Hello {{ user.name }}</span>
</body>
</html>
フィルタ
変数はフィルタを使用して変更できます。変数にフィルターを適用するには、パイプで変数名をフォローする|
フィルタ名:
{{ variable|filterName }}
たとえば、変数値を大文字の使用法で表示する。
{{ variable|upper }}
フィルタをパラメータ化できます。フィルタパラメータは、コンマ(、)で区切られたリストとしてカッコ内に渡されます。
{{ variable|filterName(param1, param2, ...) }}
与えられた精度に数値を丸めるために、フィルターround
を使用できます。最大2つのパラメーターを受け入れます。最初のものは、精度(デフォルト:0)、2番目の丸め方法(デフォルト:共通)を指定します。
一般的な方法を使用して小数点以下を1桁に丸めるには、 {{ number|round(1, 'common') }}
または{{ number|round(1) }}
を使用できます。
フィルタは埋め込みオブジェクトと配列変数でも使用できます。
{{ array['key'] | upper }} {{ object.text | upper }}
フィルタを連結することもできます。
{% set array = "3,1,2"|split(',') %}
{{ array | sort | first }}
条件ブロック
テンプレートの一部を条件付きで表示することができます。 If
のステートメントは、この目的のために使用されています。プログラミング言語のif
文と似ています。式がtrue
評価された場合、ブロックの内容は実行/表示されtrue
。
{% if enabled == false %}
Disabled
{% endif %}
Disabledは、 enabled
がfalse
場合にのみ表示されfalse
。
elseif
とelse
を使用して、複数のブランチを作成できelse
。
{% if temperature < 10 %}
It's cold
{% elseif temperature < 18 %}
It's chilly
{% elseif temperature < 24 %}
It's warm
{% elseif temperature < 32 %}
It's hot
{% else %}
It's very hot
{% endif %}
For Loop
forループは、TWIGで本当に役に立ち、データ動的Webページの作成を可能にします。
単純な数値の配列を作成するとします:
{% set array = "3,1,2" %}
配列全体を繰り返し処理し、必要なものを印刷することができます。アレイブロック内のデータは、アレイ内のデータ量に関連して出力されます。この例では配列データを連結した3つのh1要素を出力します。
{% for current in array %}
<h1>This is number {{ current }} in the array </h1>
{% endear %}
array
バージョンではなく、データにアクセスするために{{ current }}
が使用されています
この作業を参照してください : https : //twigfiddle.com/mxwkea/2
これのさらなる例は、オブジェクトを使用することであり得る。たとえば、フィールド 'name'を持つEntityオブジェクトと、関連するgetterおよびsetterがあるとします。これらのエンティティが配列内にも格納されている場合、TWIG内の他のオブジェクトと同様にアクセスできます。
{% for currentObject in ArrayOfObjects %}
{{ currentObject.name }}
{% endfor %}
これはJSONデータで動作します: https : //twigfiddle.com/mxwkea
3項演算子(If-Then-Elseの略語)とNull併合演算子
三項演算子( ?:
:)
拡張された三項演算子のサポートは、 Twig 1.12.0で追加されました 。
{{ foo ? 'yes' : 'no' }}
評価する:
if
foo
echoyes
else echono
{{ foo ?: 'no' }}
または
{{ foo ? foo : 'no' }}
評価する:
foo
それをエコーした場合、elseをエコーしno
{{ foo ? 'yes' }}
または
{{ foo ? 'yes' : '' }}
評価する:
もし
foo
エコーyes
何もしないエコー
null合体演算子( ??:
{{ foo ?? 'no' }}
評価する:
foo
が定義されていてnullでno
場合はfoo
の値を返し、そうでno
場合はfoo
返します。
空白処理
HTMLタグの間の空白(スペース、タブ、改行を...)を削除するには、使用spaceless
タグを:
{% spaceless %}
<div>
<span>foo bar </span>
</div>
{% endspaceless %}
{# produces output <div><strong>foo bar </strong></div> #}
1つのタグレベルで空白を削除する必要がある場合は、 空白コントロール修飾子、つまりハイフン( - )を使用します。それを使用して、先頭と末尾の空白をトリミングすることができます:
{% set value = 'foo bar' %}
<span> {{- value }} </span>
{# produces '<span>foo bar </span>' #}
<span> {{ value -}} </span>
{# produces '<span> foo bar</span>' #}
<span> {{- value -}} </span>
{# produces '<span>foo bar</span>' #}
<span {%- if true %} class="foo"{% endif %}>
{# produces '<span class="foo">' #}
<span {%- if false %} class="foo"{% endif %}>
{# produces '<span>' #}