twig
Podstawowa składnia szablonu
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
echoyes
jeszcze echono
{{ foo ?: 'no' }}
lub
{{ foo ? foo : 'no' }}
Ocenia:
jeśli
foo
to echo, inaczej echono
{{ foo ? 'yes' }}
lub
{{ foo ? 'yes' : '' }}
Ocenia:
jeśli
foo
echoyes
jeszcze nic nie echo
Operator zerowego koalescencji ( ??:
{{ foo ?? 'no' }}
Ocenia:
Zwraca wartość
foo
jeśli jest zdefiniowana i nie ma wartości null , inaczejno
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>' #}