La plantilla de la vista base de Symfony está en:
/app/resources/views/base.html.twig
Para usarla en nuestra vista listadoActores.html.twig hay que extenderla:
{% extends '::base.html.twig' %}
{% block body %}
<h1>Listado de actores</h1>
{% for actor in actores %}
<p>
<a href="{{ url('cineactores_showActor',{'id_actor':actor.id_actor}) }}" class="fila {{ cycle(["par", "impar"], loop.index) }}">
{{actor.id_actor}} - {{actor.nombre}}
</a>
</p>
{% endfor %}
{% endblock %}
EJEMPLO GENERAL
Crear una vista principal: /src/cine/actoresBundle/Resources/views/main.html.twig
{% extends '::base.html.twig' %}
{% block title %}Estás en main.html {% endblock %}
{% block body %}
<div id="contenido">
{% block contenido %}
contenido principal
{% endblock %}
</div>
<div id="lateralDer">
{% block lateralDer %}
Aquí lateral Derecho
{% endblock %}
</div>
{% endblock %}
Modificar nuestra vista que herede directamente de main:
{% extends 'cineactoresBundle::main.html.twig' %}
{% block contenido %}
<h1>Listado de actores</h1>
{% for actor in actores %}
<p>
<a href="{{ url('cineactores_showActor',{'id_actor':actor.id_actor}) }}" class="fila {{ cycle(["par", "impar"], loop.index) }}">
{{actor.id_actor}} - {{actor.nombre}}
</a>
</p>
{% endfor %}
{% endblock %}
{% block lateralDer %}
{{ parent() }}
Se añade esto a Lateral Derecho por listadoActores.html
{% endblock %}
El parent() lo que hace es escribir TAMBIEN todo lo que tenga ese bloque en el padre del que se hereda. Lo agrega. Si no se pone parent() entonces sustituye el contenido de ese bloque por lo nuevo que se escriba.
Puedes reemplazar el contenido de CUALQUIER bloque (incluso de title, stylesheets, javascrips, etc).
No hay comentarios:
Publicar un comentario