Php 在子模板中创建未在Symfony framework的基础模板中定义的新块

Php 在子模板中创建未在Symfony framework的基础模板中定义的新块,php,templates,symfony-2.7,Php,Templates,Symfony 2.7,是否可以创建Symfony framework中基本模板中未定义的新块。我尝试过这样做,但在运行时它没有将那些新定义的块包含到基本模板中。 我必须在子模板中的单独块中包含这些代码,否则会导致此错误。谢谢 扩展另一个模板的模板中不能有正文 applicationStudentBundle:默认值:第95行的StudentRequest.html.twig addstudent.html.twig {% extends 'applicationMainBundle:Default:maintempl

是否可以创建Symfony framework中基本模板中未定义的新块。我尝试过这样做,但在运行时它没有将那些新定义的块包含到基本模板中。 我必须在子模板中的单独块中包含这些代码,否则会导致此错误。谢谢

扩展另一个模板的模板中不能有正文 applicationStudentBundle:默认值:第95行的StudentRequest.html.twig

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
//此处定义了mainPanel块,但未定义stylePanel块

<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>

.演示布局透明{
背景:url('http://www.getmdl.io/assets/demos/transparent.jpg')中心/盖;
}
.demo布局透明.mdl-layout___头,
.demo布局透明.mdl-layout\u抽屉按钮{
/*此背景为黑色,因此我们将文本设置为白色。如果需要,请使用87%的黑色
你的背景是浅色的*/
颜色:白色;
}
标题
{%block midPanel%}
我的酷帖子
{%endblock%}

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 #}

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 #}

请发布applicationStudentBundle的第一行:默认值:StudentRequest.html.twig模板和您在那里扩展的模板。扩展模板工作正常。但问题是我想声明一个新的块,它没有在基本模板中定义,因为如果我没有在子模板中创建块,那么它会给出上述错误。所以我只需要知道在子模板中创建新块的方法。这就是为什么我没有发布代码。但如果需要,我也可以发布代码。这是您的问题吗?谢谢。但不是这个问题,如果子模板中有代码块外的代码,则会发生错误。这就是为什么我想创建新块,而不是在块外创建代码。但问题是,块没有在基本模板中定义。在这种情况下,您应该发布模板,请发布applicationStudentBundle的第一行:默认值:StudentRequest.html.twig模板和您在那里扩展的模板。扩展模板工作正常。但问题是我想声明一个新的块,它没有在基本模板中定义,因为如果我没有在子模板中创建块,那么它会给出上述错误。所以我只需要知道在子模板中创建新块的方法。这就是为什么我没有发布代码。但如果需要,我也可以发布代码。这是您的问题吗?谢谢。但不是这个问题,如果子模板中有代码块外的代码,则会发生错误。这就是为什么我想创建新的块,而不是在块之外创建代码。但问题是块没有在基本模板中定义。在这种情况下,您应该发布模板,以便我们可以检查它并找到问题所在。