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 eco yes else echo no


{{ foo ?: 'no' }}

o

{{ foo ? foo : 'no' }}

valuta:

se lo foo eco, altrimenti echo no


{{ foo ? 'yes' }}

o

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

valuta:

se foo eco yes else echo niente


L'operatore a coalescenza nulla ( ??: :)

{{ foo ?? 'no' }}

valuta:

Restituisce il valore di foo se è definito e non nullo , altrimenti no

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>' #}


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow