2016-01-19 1 views
1

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

шаблон, который простирается другой не может иметь тело в applicationStudentBundle: По умолчанию: 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> 
+0

Пожалуйста, выкладываю первые строки applicationStudentBundle: По умолчанию: StudentRequest.html.twig шаблон и тот, который вы продлить там. –

+0

Расширение шаблона работает нормально. Но проблема в том, что я хочу объявить новый блок, который не определен в базовом шаблоне, потому что, если я не создал блок в дочернем шаблоне, он дает вышеприведенную ошибку. Поэтому мне просто нужно знать способ создания нового блока в дочернем шаблоне. Вот почему я не опубликовал код. Но при необходимости я могу также отправить код. – Heshan

+0

Это ваша проблема http://stackoverflow.com/questions/11739463/getting-error-that-a-template-that-extends-can-not-have -body? –

ответ

0

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

{# 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 #} 
Смежные вопросы