Szukaj…


Wprowadzenie

Objaśnienie podstawowych konstrukcji składni szablonów

Dostęp do zmiennych

W szablonach Twig można uzyskać dostęp do zmiennych za pomocą notacji nawiasów klamrowych {{ variableName }} .

Podstawowy przykład powitania użytkownika

<!DOCTYPE html>
<html>
  <body>
    <span>Hello {{ name }}</span>
  </body>
</html>

Dostęp do elementów tablicy

Gałązka jako parametr może otrzymać tablicę. Aby uzyskać dostęp do określonego elementu tablicy, możesz użyć zwykłej notacji nawiasów dostępu do tablicy php {{ array[key] }} .

W poprzednim przykładzie zmodyfikowano, aby użyć tablicy jako parametru

<!DOCTYPE html>
<html>
  <body>
    <span>Hello {{ user['name'] }}</span>
  </body>
</html>

Dostęp do właściwości obiektu

Obiekty można również przekazywać jako parametr do szablonu. Notacja „ {{ object.propertyName }} ” (.) Służy do uzyskiwania dostępu do określonych właściwości obiektu {{ object.propertyName }} .

Ten sam przykład z obiektem jako parametrem

<!DOCTYPE html>
<html>
  <body>
    <span>Hello {{ user.name }}</span>
  </body>
</html>

Filtry

Zmienne można modyfikować za pomocą filtrów. Aby zastosować filtr do zmiennej, wykonaj nazwę zmiennej za pomocą potoku | i nazwa filtra:

{{ variable|filterName }}

Na przykład, aby wyświetlić wartość zmiennej wielkimi literami, użyj konstrukcji.

{{ variable|upper }}

Filtry można sparametryzować. Parametry filtrów są przekazywane w nawiasach jako lista oddzielona przecinkami (,):

{{ variable|filterName(param1, param2, ...) }}

Aby zaokrąglić liczbę do podanej precyzji, możemy użyć filtru round , akceptuje do 2 parametrów. Pierwsza określa precyzję (domyślnie: 0), druga metoda zaokrąglania (domyślnie: wspólna).

Aby zaokrąglić liczbę do 1 miejsca po przecinku za pomocą wspólnej metody, możesz użyć {{ number|round(1, 'common') }} lub {{ number|round(1) }} jako powszechną metodą domyślną.

Filtrów można także używać w przypadku obiektów osadzonych i zmiennych tablicowych:

{{ array['key'] | upper }} {{ object.text | upper }}

Filtry można także łączyć:

{% set array = "3,1,2"|split(',') %}

{{ array | sort | first }}

Lista podstawowych filtrów jest dostępna tutaj

Bloki warunkowe

Części szablonu mogą być wyświetlane warunkowo. If do tego celu użyto instrukcji. Jest podobny do instrukcji if w językach programowania. Zawartość bloku jest wykonywana / wyświetlana, jeśli wyrażenie ma wartość true .

{% if enabled == false %}
    Disabled
{% endif %}

Wyłączone będzie wyświetlane tylko wtedy enabled gdy enabled będzie równe false .

Wiele gałęzi można utworzyć za pomocą elseif i 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 %}

Dla pętli

Pętle mogą być bardzo przydatne w TWIG, umożliwiając tworzenie dynamicznych danych stron internetowych.

Załóżmy, że tworzymy prostą tablicę liczb:

{% set array = "3,1,2" %}

Następnie możemy iterować po tablicy i wydrukować, co chcemy. Wszelkie dane w bloku tablicy zostaną wyprowadzone w stosunku do ilości danych w tablicy. Ten przykład wydrukowałby trzy elementy h1 z połączonymi danymi tablicy.

{% for current in array %}
    <h1>This is number {{ current }} in the array </h1>
{% endear %}

Pamiętaj, że {{ current }} został użyty do uzyskania dostępu do danych, a nie wersji array

Zobacz ten działający: https://twigfiddle.com/mxwkea/2

Kolejnym przykładem tego może być użycie obiektów. Załóżmy na przykład, że mamy obiekt Entity z polem „name” wraz z odpowiednimi obiektami pobierającymi i ustawiającymi . Jeśli pewna liczba tych bytów jest również przechowywana w szyku, można uzyskać do nich dostęp, podobnie jak inne obiekty w TWIG:

{% for currentObject in ArrayOfObjects %}
    {{ currentObject.name }}
{% endfor %}

Zobacz, jak działa z danymi JSON: https://twigfiddle.com/mxwkea

Operator trójskładnikowy (stenografia jeśli-to-inaczej) i operator zerowo-koalescencyjny

Operator trójskładnikowy ( ?: :)

W rozszerzeniu 1.12.0 dodano obsługę rozszerzonego operatora trójskładnikowego.

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

Ocenia:

jeśli foo echo yes jeszcze echo no


{{ foo ?: 'no' }}

lub

{{ foo ? foo : 'no' }}

Ocenia:

jeśli foo to echo, inaczej echo no


{{ foo ? 'yes' }}

lub

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

Ocenia:

jeśli foo echo yes jeszcze nic nie echo


Operator zerowego koalescencji ( ??:

{{ foo ?? 'no' }}

Ocenia:

Zwraca wartość foo jeśli jest zdefiniowana i nie ma wartości null , inaczej no

Obsługa białych znaków

Aby usunąć białych znaków (spacje, tabulatory, znaki nowej linii ...) między znaczniki HTML używać spaceless tag:

{% spaceless %}

    <div>
        <span>foo bar </span>
    </div>
{% endspaceless %}
{# produces output <div><strong>foo bar </strong></div> #}

Jeśli chcesz usunąć białe znaki na poziomie tagu, użyj modyfikatora kontroli białych znaków, tj. Łącznika (-). Za jego pomocą możesz przycinać początkowe i / lub końcowe białe znaki:

{% 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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow