Suche…


Einführung

Erläuterung der grundlegenden Schablonensyntaxkonstrukte

Zugriff auf Variablen

In Twig-Vorlagen kann auf Variablen mit der geschwungenen geschweiften Klammer {{ variableName }} zugegriffen werden.

Grundlegendes Beispiel für den Grußbenutzer

<!DOCTYPE html>
<html>
  <body>
    <span>Hello {{ name }}</span>
  </body>
</html>

Zugriff auf Array-Elemente

Twig als Parameter kann Array empfangen. Um auf ein bestimmtes Element des Arrays zuzugreifen, können Sie die normale Schreibweise der Array-Klammer {{ array[key] }} .

Vorheriges Beispiel geändert, um Array als Parameter zu verwenden

<!DOCTYPE html>
<html>
  <body>
    <span>Hello {{ user['name'] }}</span>
  </body>
</html>

Zugriff auf Objekteigenschaften

Objekte können auch als Parameter an template übergeben werden. Die Punktnotation (.) {{ object.propertyName }} für den Zugriff auf bestimmte Objekteigenschaften {{ object.propertyName }} .

Gleiches Beispiel mit Objekt als Parameter

<!DOCTYPE html>
<html>
  <body>
    <span>Hello {{ user.name }}</span>
  </body>
</html>

Filter

Variablen können mithilfe von Filtern geändert werden. Um den Filter auf die Variable anzuwenden, folgen Sie dem Variablennamen mit Pipe | und filtername:

{{ variable|filterName }}

Um beispielsweise den Variablenwert in Großbuchstaben anzuzeigen, verwenden Sie das Konstrukt.

{{ variable|upper }}

Filter können parametrisiert werden. Filterparameter werden in Klammern als durch Kommas (,) getrennte Liste übergeben:

{{ variable|filterName(param1, param2, ...) }}

Um die Zahl auf eine bestimmte Genauigkeit zu round , können wir die Filterrunde verwenden. Es werden bis zu 2 Parameter akzeptiert. Die erste gibt die Genauigkeit an (Standard: 0), die zweite Rundungsmethode (Standard: Allgemein).

Um die Zahl mit der üblichen Methode auf 1 Dezimalstelle zu runden, können Sie {{ number|round(1, 'common') }} oder {{ number|round(1) }} als Standardmethode verwenden.

Filter können auch für eingebettete Objekte und Array-Variablen verwendet werden:

{{ array['key'] | upper }} {{ object.text | upper }}

Filter können auch verkettet werden:

{% set array = "3,1,2"|split(',') %}

{{ array | sort | first }}

Eine Liste der Basisfilter finden Sie hier

Bedingte Blöcke

Teile der Vorlage können bedingt angezeigt werden. If Anweisung zu diesem Zweck verwendet wird. Es ist vergleichbar mit if Anweisung in Programmiersprachen. Der Inhalt des Blocks wird ausgeführt / angezeigt, wenn ein Ausdruck als true ausgewertet wird.

{% if enabled == false %}
    Disabled
{% endif %}

Deaktiviert wird nur angezeigt, wenn enabled gleich false .

Mehrere Zweige können mit elseif und 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 %}

Für Schleife

For-Schleifen können in TWIG sehr nützlich sein und die Erstellung datendynamischer Webseiten ermöglichen.

Nehmen wir an, wir erstellen ein einfaches Zahlenfeld:

{% set array = "3,1,2" %}

Wir können dann das Array durchlaufen und drucken, was wir wollen. Alle Daten innerhalb des Arrayblocks werden in Relation zur Datenmenge innerhalb des Arrays ausgegeben. In diesem Beispiel werden drei h1-Elemente mit verketteten Array-Daten gedruckt.

{% for current in array %}
    <h1>This is number {{ current }} in the array </h1>
{% endear %}

Beachten Sie, dass {{ current }} für den Zugriff auf die Daten und nicht für eine array Version verwendet wurde

Sehen Sie sich dies an: https://twigfiddle.com/mxwkea/2

Ein weiteres Beispiel hierfür könnten Objekte sein. Angenommen, wir haben ein Entitätsobjekt mit dem Feld "Name" zusammen mit den relevanten Gettern und Setters . Wenn mehrere dieser Entitäten auch im Array gespeichert sind, kann auf sie wie auf alle anderen Objekte in TWIG zugegriffen werden:

{% for currentObject in ArrayOfObjects %}
    {{ currentObject.name }}
{% endfor %}

Siehe dies beim Arbeiten mit JSON-Daten: https://twigfiddle.com/mxwkea

Ternärer Operator (Abkürzung If-Then-Else) und Nullkoaleszenzoperator

Der ternäre Operator ( ?: :)

Unterstützung für den erweiterten ternären Operator wurde in Twig 1.12.0 hinzugefügt.

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

Bewertet:

wenn foo echo yes sonst echo no


{{ foo ?: 'no' }}

oder

{{ foo ? foo : 'no' }}

Bewertet:

wenn foo echo es, sonst echo no


{{ foo ? 'yes' }}

oder

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

Bewertet:

wenn foo echo yes sonst nichts


Der nullkoaleszierende Operator ( ??: :)

{{ foo ?? 'no' }}

Bewertet:

Gibt den Wert von foo , wenn sie definiert ist und null nicht, no anders

Whitespace-Handling

So entfernen Sie Leerzeichen (Leerzeichen, Tabulatoren, Zeilenumbrüche ...) zwischen HTML - Tags verwenden spaceless tag:

{% spaceless %}

    <div>
        <span>foo bar </span>
    </div>
{% endspaceless %}
{# produces output <div><strong>foo bar </strong></div> #}

Wenn Sie Whitespace auf einer Ebene pro Tag entfernen müssen, verwenden Sie den Modifizierer für die Whitespace-Steuerung, dh Bindestrich (-). Mit ihm können Sie führende und / oder nachgestellte Leerzeichen trimmen:

{% 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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow