Variables y Estructuras en TWIG
Variables
En una plantilla Twig podemos utilizar variables locales o globales.
Variables locales
Las variables locales son aquellas que se han proporcionado a la plantilla a través del controlador:
$this->render('MyRecipesBundle:Default:show', array('recipe' => $recipe));
También son variables locales las definidas dentro de la propia plantilla:
{% set system_messages = ['error', 'warning', 'notice', 'success'] %}
{% for type in system_messages %}
{{ ... }}
{% endfor %}
Estructuras de control
En Twig existen dos estructuras de control; bucles y condicionales. Los condicionales se representan con el tag if
.
{% if recipe.difficulty == 'fácil' %}
No tendrás problemas para concinar esta receta.
{% elseif recipe.difficulty == 'media' %}
Esta receta requiere conocimientos avanzados de cocina.
{% else %}
¡Para dominar esta receta necesitas ser un Top Chef!
{% endif %}
Podremos recorrer arrays y colecciones con el tag for
.
<h3>Recetas del autor</h3>
<ul>
{% for recipe in author.recipes %}
<li class="recipe">{{ recipe.name }}</li>
{% endfor %}
</ul>
En los bucles podemos recuperar el número de la iteración con loop.index
y loop.index0
:
{% for recipe in author.recipes %}
<li class="recipe {% if loop.index0 is odd %}odd{% else %}even{% endif %}">{{ recipe.name }}</li>
{% endfor %}