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 echo yes anders echo no


{{ foo ?: 'no' }}

of

{{ foo ? foo : 'no' }}

evalueert:

als foo echo het, anders echo no


{{ foo ? 'yes' }}

of

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

evalueert:

als foo echo yes 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>' #}


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow