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 echo yes mas echo no


{{ foo ?: 'no' }}

o

{{ foo ? foo : 'no' }}

Evalúa:

si foo eco, si no echo no


{{ foo ? 'yes' }}

o

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

Evalúa:

si foo echo yes 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 contrario no

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


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow