создавать новые блоки в дочернем шаблоне, которые не определены в базовом шаблоне в среде Symfony

Можно ли создавать новые блоки, которые не определены в базовом шаблоне в среде Symfony. Я пытался это сделать, но он не включает эти недавно определенные блоки в базовый шаблон при запуске. Я должен включить этот код в отдельный блок в дочернем шаблоне, потому что в противном случае он выдает эту ошибку. Спасибо.

Шаблон, который расширяет другой, не может иметь тело в applicationStudentBundle:Default:StudentRequest.html.twig в строке 95.

addstudent.html.twig

{% extends 'applicationMainBundle:Default:maintemplate.html.twig' %}


{% block midPanel %}
    //block defined in base template
{% endblock %}

{% block stylePanel %}
    //block which is not defined in base template
{% endblock %}

maintemplate.html.twig //here mainPanel block is defined but stylePanel block is not defined

<html>
<head>
    <!-- Material Design Lite -->
    <script type="text/javascript" src="{{ asset('bundles/applicationmain/js/material.js') }}"></script>
    <link rel="stylesheet" href="{{ asset('bundles/applicationmain/css/material.css') }}">
    <link rel="stylesheet" href="{{ asset('bundles/applicationmain/css/formStyle.css') }}">
    <!-- Material Design icon font -->
    <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
    <!-- Material Design Lite -->
    <script src="https://storage.googleapis.com/code.getmdl.io/1.0.6/material.min.js"></script>
    <link rel="stylesheet" href="https://storage.googleapis.com/code.getmdl.io/1.0.6/material.indigo-pink.min.css">
    <!-- Material Design icon font -->
    <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
    <style>
        .demo-layout-transparent {
            background: url('http://www.getmdl.io/assets/demos/transparent.jpg') center / cover;
        }
        .demo-layout-transparent .mdl-layout__header,
        .demo-layout-transparent .mdl-layout__drawer-button {
            /* This background is dark, so we set text to white. Use 87% black instead if
               your background is light. */
            color: white;
        }

    </style>
</head>
<body>
<!-- Uses a transparent header that draws on top of the layout's background -->
<div class="demo-layout-transparent mdl-layout mdl-js-layout">
    <div class="mdl-layout__drawer">
        <span class="mdl-layout-title">Title</span>
        <nav class="mdl-navigation">
            <a class="mdl-navigation__link" href="">Link</a>
            <a class="mdl-navigation__link" href="">Link</a>
            <a class="mdl-navigation__link" href="">Link</a>
            <a class="mdl-navigation__link" href="">Link</a>
        </nav>
    </div>
    <main class="mdl-layout__content">

        {% block midPanel %}
            My cool posts
        {% endblock %}

     </main>
</div>
</body>
</html>

person Heshan    schedule 19.01.2016    source источник
comment
Пожалуйста, опубликуйте первые строки шаблона applicationStudentBundle:Default:StudentRequest.html.twig и ту, которую вы там расширяете.   -  person Nuno Pereira    schedule 19.01.2016
comment
расширение шаблона работает нормально. Но проблема в том, что я хочу объявить новый блок, который не определен в базовом шаблоне, потому что, если я не создал блок в дочернем шаблоне, это дает указанную выше ошибку. Поэтому мне просто нужно знать, как создать новый блок в дочернем шаблоне. Вот почему я не разместил код. Но если нужно, я также могу опубликовать код.   -  person Heshan    schedule 19.01.2016
comment
Это ваша проблема stackoverflow.com/questions/11739463/?   -  person Nuno Pereira    schedule 19.01.2016
comment
спасибо. Но это не эта проблема, эта ошибка возникает, если в дочернем шаблоне есть коды вне блоков. Вот почему я хочу создать новый блок, а не иметь коды вне блока. Но проблема в том, что блок не определен в базовом шаблоне.   -  person Heshan    schedule 19.01.2016
comment
В этом случае вы должны опубликовать свои шаблоны, чтобы мы могли проверить и найти проблему.   -  person Nuno Pereira    schedule 19.01.2016
comment
Я разместил свой код и ценю любые предложения. Спасибо.   -  person Heshan    schedule 19.01.2016
comment
Ошибка возникает в шаблоне applicationStudentBundle:Default:StudentRequest.html.twig, но вы разместили шаблон addstudent.html.twig. Неужели еще один. И я все еще не вижу проблем в шаблоне, который вы разместили.   -  person Nuno Pereira    schedule 20.01.2016


Ответы (1)


twig позволяет что-то вроде этого:

{# base.html.twig #}

    {% block body%}

    {% endblock%}

{# base.html.twig #}


{# child.html.twig #}

    {% extends 'base.html.twig'%}

     {% block body%}

         {% block hahahablock%}

         {% endblock%}

         {% block newblock%}

         {% endblock%}

    {% endblock%}

{# child.html.twig #}

{# another.html.twig #}

    {% extends 'child.html.twig'%}        

    {% block hahahablock%}

    {% endblock%}

    {% block newblock%}

    {% endblock%}

{# another.html.twig #}
person Paulo Roberto    schedule 15.06.2016