サーチ…


前書き

基本的なテンプレート構文の説明

変数へのアクセス

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は、 enabledfalse場合にのみ表示されfalse

elseifelseを使用して、複数のブランチを作成でき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 echo yes else echo no


{{ foo ?: 'no' }}

または

{{ foo ? foo : 'no' }}

評価する:

fooそれをエコーし​​た場合、elseをエコーしno


{{ foo ? 'yes' }}

または

{{ foo ? 'yes' : '' }}

評価する:

もしfooエコーyes何もしないエコー


null合体演算子( ??:

{{ foo ?? 'no' }}

評価する:

foo が定義されいてnullno場合 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>' #}


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow