twig
Basissjabloonsyntaxis
Zoeken…
Invoering
Verklaring van syntaxisconstructies van basissjablonen
Toegang tot variabelen
In Twig-sjablonen zijn variabelen toegankelijk met behulp van dubbele accolades notatie {{ variableName }}
.
Basisvoorbeeld van begroeting gebruiker
<!DOCTYPE html>
<html>
<body>
<span>Hello {{ name }}</span>
</body>
</html>
Toegang tot matrixelementen
Twig als parameter kan array ontvangen. Om toegang te krijgen tot een specifiek element van de array, kunt u de reguliere php-array toegangbracketnotatie {{ array[key] }}
.
Vorig voorbeeld gewijzigd om array als parameter te gebruiken
<!DOCTYPE html>
<html>
<body>
<span>Hello {{ user['name'] }}</span>
</body>
</html>
Toegang tot objecteigenschappen
Objecten kunnen ook als parameter aan sjabloon worden doorgegeven. 'Punt' (.) Notatie wordt gebruikt om toegang te krijgen tot specifieke objecteigenschappen {{ object.propertyName }}
.
Hetzelfde voorbeeld met object als parameter
<!DOCTYPE html>
<html>
<body>
<span>Hello {{ user.name }}</span>
</body>
</html>
filters
Variabelen kunnen worden aangepast met behulp van filters. Om filter op variabele toe te passen, volg variabelenaam met pipe |
en filternaam:
{{ variable|filterName }}
Bijvoorbeeld om de variabele waarde weer te geven in hoofdletters.
{{ variable|upper }}
Filters kunnen worden geparametriseerd. Filterparameters worden tussen haakjes doorgegeven als een door komma's (,) gescheiden lijst:
{{ variable|filterName(param1, param2, ...) }}
Om rond getal aan gegeven precisie kunnen we filter gebruiken round
, accepteert maximaal 2 parameters. Eerste specificeert precisie (standaard: 0), tweede afrondingsmethode (standaard: gemeenschappelijk).
Om het getal af te ronden op 1 decimaal met de algemene methode, kunt u {{ number|round(1, 'common') }}
of {{ number|round(1) }}
omdat standaard de standaardmethode is.
Filters kunnen ook worden gebruikt voor ingesloten objecten en matrixvariabelen:
{{ array['key'] | upper }} {{ object.text | upper }}
Filters kunnen ook worden samengevoegd:
{% set array = "3,1,2"|split(',') %}
{{ array | sort | first }}
Lijst met basisfilters is hier beschikbaar
Voorwaardelijke blokken
Delen van een sjabloon kunnen voorwaardelijk worden weergegeven. If
verklaring hiervoor wordt gebruikt. Het is vergelijkbaar met if
statement in programmeertalen. De inhoud van het blok wordt uitgevoerd / weergegeven als een uitdrukking de waarde true
.
{% if enabled == false %}
Disabled
{% endif %}
Uitgeschakeld wordt alleen weergegeven als enabled
gelijk is aan false
.
Met behulp van elseif
en else
kunnen meerdere takken worden aangemaakt.
{% 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-lussen kunnen erg handig zijn in TWIG, waardoor het mogelijk wordt om datadynamische webpagina's te maken.
Stel dat we een eenvoudige reeks getallen maken:
{% set array = "3,1,2" %}
We kunnen dan de reeks herhalen en afdrukken wat we maar willen. Alle gegevens in het array-blok worden uitgevoerd in verhouding tot de hoeveelheid data in de array. In dit voorbeeld worden drie h1-elementen afgedrukt met de arraygegevens aaneengeschakeld.
{% for current in array %}
<h1>This is number {{ current }} in the array </h1>
{% endear %}
Merk op dat {{ current }}
werd gebruikt om toegang te krijgen tot de gegevens en niet tot een versie van de array
Zie dit werken: https://twigfiddle.com/mxwkea/2
Een ander voorbeeld hiervan is het gebruik van objecten. Stel bijvoorbeeld dat we een entiteitobject hebben met het veld 'naam' samen met de relevante getters en setters . Als een aantal van deze entiteiten ook worden opgeslagen in de array, zijn ze toegankelijk als alle andere objecten in TWIG:
{% for currentObject in ArrayOfObjects %}
{{ currentObject.name }}
{% endfor %}
Zie dit werken met JSON-gegevens: https://twigfiddle.com/mxwkea
Ternary-operator (steno-indien-dan-anders) & nul-coalescerende operator
De ternaire operator ( ?:
:)
Ondersteuning voor de uitgebreide ternaire operator is toegevoegd in Twig 1.12.0 .
{{ foo ? 'yes' : 'no' }}
evalueert:
als
foo
echoyes
anders echono
{{ foo ?: 'no' }}
of
{{ foo ? foo : 'no' }}
evalueert:
als
foo
echo het, anders echono
{{ foo ? 'yes' }}
of
{{ foo ? 'yes' : '' }}
evalueert:
als
foo
echoyes
anders echo niets
De nul-coalescerende operator ( ??:
:)
{{ foo ?? 'no' }}
evalueert:
Geeft de waarde van
foo
als het wordt gedefinieerd en niet null,no
anders
Witboekafhandeling
Gebruik spaceless
tag om witruimte (spaties, tabs, nieuwe regels ...) tussen HTML-tags te verwijderen:
{% spaceless %}
<div>
<span>foo bar </span>
</div>
{% endspaceless %}
{# produces output <div><strong>foo bar </strong></div> #}
Als u witruimte per tagniveau wilt verwijderen, gebruikt u witruimte-besturingsmodifier , bijvoorbeeld koppelteken (-). Met deze functie kunt u voorloop- en / of witruimte bijsnijden:
{% 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>' #}