twig
Sintassi dei modelli di base
Ricerca…
introduzione
Spiegazione dei costrutti sintattici di base del modello
Accesso alle variabili
Nei modelli di Twig è possibile accedere alle variabili usando la doppia notazione delle parentesi graffe {{ variableName }}
.
Esempio di base di saluto dell'utente
<!DOCTYPE html>
<html>
<body>
<span>Hello {{ name }}</span>
</body>
</html>
Accedere agli elementi dell'array
Twig come parametro può ricevere array. Per accedere a un elemento specifico dell'array, puoi usare la notazione di parentesi standard di accesso dell'array php {{ array[key] }}
.
Esempio precedente modificato per utilizzare l'array come parametro
<!DOCTYPE html>
<html>
<body>
<span>Hello {{ user['name'] }}</span>
</body>
</html>
Accesso alle proprietà dell'oggetto
Gli oggetti possono anche essere passati come parametro al modello. La notazione 'punto' (.) Viene utilizzata per accedere a proprietà dell'oggetto specifiche {{ object.propertyName }}
.
Stesso esempio con oggetto come parametro
<!DOCTYPE html>
<html>
<body>
<span>Hello {{ user.name }}</span>
</body>
</html>
filtri
Le variabili possono essere modificate usando i filtri. Per applicare il filtro alla variabile segui il nome della variabile con pipe |
e nome del filtro:
{{ variable|filterName }}
Ad esempio, per visualizzare il valore variabile nel costrutto di utilizzo in lettere maiuscole.
{{ variable|upper }}
I filtri possono essere parametrizzati. I parametri del filtro sono passati tra parentesi come una lista separata da virgole (,):
{{ variable|filterName(param1, param2, ...) }}
Per arrotondare il numero alla precisione data possiamo usare il filtro round
, accetta fino a 2 parametri. Il primo specifica precisione (default: 0), secondo metodo di arrotondamento (predefinito: comune).
Per arrotondare il numero alla prima cifra decimale utilizzando il metodo comune, è possibile utilizzare {{ number|round(1, 'common') }}
o {{ number|round(1) }}
come comune è il metodo predefinito.
I filtri possono essere utilizzati anche su oggetti incorporati e variabili di array:
{{ array['key'] | upper }} {{ object.text | upper }}
I filtri possono anche essere concatenati:
{% set array = "3,1,2"|split(',') %}
{{ array | sort | first }}
L'elenco dei filtri di base è disponibile qui
Blocchi condizionali
Parti del modello possono essere visualizzate in modo condizionale. If
dichiarazione è usata per questo scopo. E 'simile a if
dichiarazione in linguaggi di programmazione. I contenuti del blocco vengono eseguiti / visualizzati se un'espressione restituisce true
.
{% if enabled == false %}
Disabled
{% endif %}
Disabilitato verrà visualizzato solo se enabled
sarà uguale false
.
Più filiali possono essere create usando elseif
e 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 %}
Per Loop
I loop possono essere davvero utili in TWIG, consentendo la creazione di pagine Web dinamiche.
Supponiamo di creare una semplice serie di numeri:
{% set array = "3,1,2" %}
Possiamo quindi scorrere l'array e stampare tutto ciò che vogliamo. Qualsiasi dato all'interno del blocco dell'array verrà emesso in relazione alla quantità di dati all'interno dell'array. Questo esempio stamperebbe tre elementi h1 con i dati dell'array concatenati.
{% for current in array %}
<h1>This is number {{ current }} in the array </h1>
{% endear %}
Si noti che {{ current }}
stato utilizzato per accedere ai dati e non a una versione array
Vedi questo lavoro: https://twigfiddle.com/mxwkea/2
Un ulteriore esempio di questo potrebbe essere l'utilizzo di oggetti. Ad esempio, diciamo che abbiamo un oggetto Entity con il campo 'name' insieme ai getter e setter rilevanti. Se un numero di queste entità è anche memorizzato all'interno della matrice, è possibile accedervi come qualsiasi altro oggetto in TWIG:
{% for currentObject in ArrayOfObjects %}
{{ currentObject.name }}
{% endfor %}
Vedi questo funziona con i dati JSON: https://twigfiddle.com/mxwkea
Operatore ternario (stenografia If-Then-Else) e operatore a coalescenza nulla
L'operatore ternario ( ?:
:)
Il supporto per l'operatore ternario esteso è stato aggiunto in Twig 1.12.0 .
{{ foo ? 'yes' : 'no' }}
valuta:
se
foo
ecoyes
else echono
{{ foo ?: 'no' }}
o
{{ foo ? foo : 'no' }}
valuta:
se lo
foo
eco, altrimenti echono
{{ foo ? 'yes' }}
o
{{ foo ? 'yes' : '' }}
valuta:
se
foo
ecoyes
else echo niente
L'operatore a coalescenza nulla ( ??:
:)
{{ foo ?? 'no' }}
valuta:
Restituisce il valore di
foo
se è definito e non nullo , altrimentino
Gestione spazi bianchi
Per rimuovere spazi bianchi (spazi, tabulazioni, nuove righe ...) tra tag HTML, utilizzare tag spaceless
spazi:
{% spaceless %}
<div>
<span>foo bar </span>
</div>
{% endspaceless %}
{# produces output <div><strong>foo bar </strong></div> #}
Se è necessario rimuovere spazi bianchi a livello di tag, utilizzare il modificatore di controllo dello spazio bianco, ad es. Trattino (-). Usandolo, puoi tagliare gli spazi bianchi iniziali o finali:
{% 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>' #}