twig
Grundlegende Vorlagensyntax
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
echoyes
sonst echono
{{ foo ?: 'no' }}
oder
{{ foo ? foo : 'no' }}
Bewertet:
wenn
foo
echo es, sonst echono
{{ foo ? 'yes' }}
oder
{{ foo ? 'yes' : '' }}
Bewertet:
wenn
foo
echoyes
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>' #}