Php 在子模板中创建未在Symfony framework的基础模板中定义的新块
是否可以创建Symfony framework中基本模板中未定义的新块。我尝试过这样做,但在运行时它没有将那些新定义的块包含到基本模板中。 我必须在子模板中的单独块中包含这些代码,否则会导致此错误。谢谢 扩展另一个模板的模板中不能有正文 applicationStudentBundle:默认值:第95行的StudentRequest.html.twig addstudent.html.twigPhp 在子模板中创建未在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
{% 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模板和您在那里扩展的模板。扩展模板工作正常。但问题是我想声明一个新的块,它没有在基本模板中定义,因为如果我没有在子模板中创建块,那么它会给出上述错误。所以我只需要知道在子模板中创建新块的方法。这就是为什么我没有发布代码。但如果需要,我也可以发布代码。这是您的问题吗?谢谢。但不是这个问题,如果子模板中有代码块外的代码,则会发生错误。这就是为什么我想创建新的块,而不是在块之外创建代码。但问题是块没有在基本模板中定义。在这种情况下,您应该发布模板,以便我们可以检查它并找到问题所在。