twig
Sintaxis básica de la plantilla
Buscar..
Introducción
Explicación de construcciones de sintaxis de plantillas básicas
Variables de acceso
En las plantillas de Twig se puede acceder a las variables utilizando la notación de llaves dobles {{ variableName }}
.
Ejemplo básico de saludo al usuario.
<!DOCTYPE html>
<html>
<body>
<span>Hello {{ name }}</span>
</body>
</html>
Accediendo a los elementos del array.
La ramita como parámetro puede recibir matriz. Para acceder a un elemento específico de la matriz, puede usar la notación de corchete de acceso de la matriz php {{ array[key] }}
.
Ejemplo anterior modificado para usar la matriz como parámetro
<!DOCTYPE html>
<html>
<body>
<span>Hello {{ user['name'] }}</span>
</body>
</html>
Acceso a las propiedades del objeto.
Los objetos también se pueden pasar como un parámetro a la plantilla. La notación 'Dot' (.) Se usa para acceder a propiedades específicas del objeto {{ object.propertyName }}
.
Mismo ejemplo con objeto como parámetro.
<!DOCTYPE html>
<html>
<body>
<span>Hello {{ user.name }}</span>
</body>
</html>
Filtros
Las variables pueden ser modificadas utilizando filtros. Para aplicar el filtro a la variable siga el nombre de la variable con la tubería |
y nombre del filtro:
{{ variable|filterName }}
Por ejemplo, para mostrar el valor de la variable en mayúsculas utilice la construcción.
{{ variable|upper }}
Los filtros pueden ser parametrizados. Los parámetros del filtro se pasan entre paréntesis como una lista separada por comas (,):
{{ variable|filterName(param1, param2, ...) }}
Para redondear el número a una precisión dada, podemos usar filtro round
, acepta hasta 2 parámetros. El primero especifica la precisión (predeterminado: 0), el segundo método de redondeo (predeterminado: común).
Para redondear el número a 1 decimal usando el método común, puede usar {{ number|round(1, 'common') }}
o {{ number|round(1) }}
ya que el método predeterminado es común.
Los filtros también se pueden usar en objetos incrustados y variables de matriz:
{{ array['key'] | upper }} {{ object.text | upper }}
Los filtros también se pueden concatenar:
{% set array = "3,1,2"|split(',') %}
{{ array | sort | first }}
La lista de filtros básicos está disponible aquí.
Bloques condicionales
Las partes de la plantilla se pueden mostrar condicionalmente. If
declaración se utiliza para este propósito. Es similar a la declaración if
en lenguajes de programación. El contenido del bloque se ejecuta / muestra si una expresión se evalúa como true
.
{% if enabled == false %}
Disabled
{% endif %}
Desactivado se mostrará solo cuando enabled
será igual a false
.
Se pueden crear múltiples ramas usando elseif
y 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 %}
En bucle
Para los bucles puede ser realmente útil en TWIG, permitiendo la creación de páginas web dinámicas de datos.
Digamos que creamos una simple serie de números:
{% set array = "3,1,2" %}
Luego podemos iterar sobre la matriz e imprimir lo que queramos. Cualquier dato dentro del bloque de matriz se generará en relación con la cantidad de datos dentro de la matriz. Este ejemplo imprimirá tres elementos h1 con los datos de la matriz concatenados.
{% for current in array %}
<h1>This is number {{ current }} in the array </h1>
{% endear %}
Tenga en cuenta que {{ current }}
se utilizó para acceder a los datos y no a una versión de la array
Ver este trabajo: https://twigfiddle.com/mxwkea/2
Otro ejemplo de esto podría ser usar objetos. Por ejemplo, supongamos que tenemos un objeto Entidad con el campo 'nombre' junto con sus captadores y definidores relevantes. Si varias de estas entidades también se almacenan dentro del Array, se puede acceder a ellas como a cualquier otro Objeto dentro de TWIG:
{% for currentObject in ArrayOfObjects %}
{{ currentObject.name }}
{% endfor %}
Vea esto trabajando con datos JSON: https://twigfiddle.com/mxwkea
Operador ternario (taquigrafía si-entonces-más) y operador de fusión nula
El operador ternario ( ?:
El soporte para el operador ternario extendido se agregó en Twig 1.12.0 .
{{ foo ? 'yes' : 'no' }}
Evalúa:
si
foo
echoyes
mas echono
{{ foo ?: 'no' }}
o
{{ foo ? foo : 'no' }}
Evalúa:
si
foo
eco, sino
echono
{{ foo ? 'yes' }}
o
{{ foo ? 'yes' : '' }}
Evalúa:
si
foo
echoyes
si no echo nada
El operador de unión nula ( ??:
{{ foo ?? 'no' }}
Evalúa:
Devuelve el valor de
foo
si está definido y no es nulo , de lo contrariono
Manejo de espacios en blanco
Para eliminar espacios en blanco (espacios, pestañas, nuevas líneas ...) entre etiquetas HTML, use una etiqueta spaceless
espacio:
{% spaceless %}
<div>
<span>foo bar </span>
</div>
{% endspaceless %}
{# produces output <div><strong>foo bar </strong></div> #}
Si necesita eliminar los espacios en blanco en un nivel por etiqueta, use el modificador de control de espacios en blanco, es decir, guión (-). Usándolo, puede recortar espacios en blanco iniciales o finales:
{% 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>' #}