Symfony - Contenido repetido en twig

 
Vista:
sin imagen de perfil

Contenido repetido en twig

Publicado por José (1 intervención) el 19/03/2018 19:49:14
Estoy usando Symfony y twig. Tengo una vista que depende de un layout llamado admin_layout.html.twig, cuyo código es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
{% extends 'base.html.twig' %}
 
{% block title %}{% endblock title %}
 
{% block stylesheets %}
    {#Por si cargaramos estilos desde base.html.twig#}
    {{ parent() }}
    {# CSS propios de la plantilla de admin #}
    <link rel='stylesheet' href='{{ asset('bundles/app/css/admin/template_base_styles.min.css') }}' />
{% endblock stylesheets %}
 
{% block body %}
    {#Por si cargamos contenidos de base.html.twig#}
    {{ parent() }}
    {% block content %}
        {# Variables de página #}
        {% set estaRuta = app.request.get('_route') %}
        {% set parametrosDeRuta = app.request.get('_route_params') %}
        {# Final de variables de página #}
        {% include 'admin/admin_header.html.twig' %}
        {% include 'admin/admin_navbar.html.twig' %}
        {# El siguiente contenedor es la zona principal de trabajo. Su contenido varía de una página a otra, #}
        {# pero la estructura se mantiene. Tiene el id 'TMPT_mainContentArea', tanto para su estilización por CSS como #}
        {# para su gestión por jQuery. #}
        <div id='TMPT_mainContentArea' class='TMPT_fullVPWidth'>
            <div class='container-fluid'>
                {% block page_content %}{% endblock page_content %}
            </div>
        </div>
    {% endblock content %}
 
    {% block javascripts %}
        {#Por si cargamos contenidos de base.html.twig#}
        {{ parent() }}
        <script language='javascript' src='{{ asset('bundles/app/js/admin/TMPT_template_base.js') }}'></script>
    {% endblock javascripts %}
{% endblock body %}

Como veis, hay un bloque llamado page_content, anidado dentro de otro bloque, llamado content.

La vista que extiende de este layout es muy simple:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{% extends 'admin_layout.html.twig' %}
{% block title %}Página principal de admin{% endblock %}
{% block body %}
    {% block content %}
        {{ parent() }}
        {% block page_content %}
            {# Aquí van los contenidos de la zona principal de la página #}
            <h1>{{"Main Page"|trans()}}</h1>
            {# Aquí acaban los contenidos de la zona principal de la página #}
        {% endblock page_content %}
    {% endblock content %}
    {% block scripts %}
    {% endblock scripts %}
{% endblock body %}

Todo parece ir bien al cargar la página, pero el problema es que el código HTML está repetido. Si muestro el código en el navegador, veo algo como esto:

1
2
3
4
5
6
7
8
9
...
                                <div id='TMPT_mainContentArea' class='TMPT_fullVPWidth'>
            <div class='container-fluid'>
                                        <h1>Main Page</h1>
                                </div>
        </div>
 
                                <h1>Main Page</h1>
....

Es decir, el HTML <h1>Main Page</h1 aparece dos veces. Una en su sitio y otra fuera del div TMPT_mainContentArea. Ya me he asegurado de que en la vista sólo está en un sitio, y no está en ninguna otra parte del código, ni en el layout, ni en el controlador, ni en ningún sitio más.

Podeis darme alguna pista?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder