想要创建Symfony2中几个html页面中包含的常见页眉和页脚模板。 它给了我错误:
无法在第16行的base.html.twig中找到模板“Bundle:Controller:header.html.twig”。
指南
SRC
/ HelloBundle
/控制器
MainController.php
/资源
/视图
/主要
header.html.twig
index.html.twig
我的index.html.twig文件中的代码:
<div class="container">
<div id="header">
{% include "HelloBundle:Main:header.html.twig" %}
</div>
</div>
在我的base.html.twig文件中:
<html>
<head>
<meta charset="UTF-8" />
<title></title>
{% block stylesheets %}
</head>
<body>
16: {% include 'Bundle:Controller:header.html.twig' %}
{% block body %}
{% endblock %}
{% block javascripts %}
{% endblock %}
</body>
</html>
和我的header.html.twig
<nav class="navbar navbar-default" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<ul class="nav navbar-nav">
<li class="active"><a href="{{ path('index') }}">Home</a></li>
<li><a href="{{ path('english') }}"> LEARNING</a></li>
</ul>
</div> <!-- collapse navbar-collapse -->
</div> <!-- container-fluid-->
</nav> <!--navbar navbar-default -->
答案 0 :(得分:4)
假设views
文件夹下有Resources
目录:
src/Acme/DemoBundle/Resources/views
在layout.html.twig
目录下创建一般布局模板文件(让我们称之为header.html.twig
),footer.html.twig
和views
。
并为layout.html.twig
文件写一个标记:
<html>
<head>
<meta charset="UTF-8" />
<title></title>
</head>
<body>
<div id="header">
{% include('@AcmeDemo/header.html.twig') %}
</div>
<div id="wrapper">
{% block content %}{% endblock %}
</div>
<div id="footer">
{% include('@AcmeDemo/footer.html.twig') %}
</div>
</body>
</html>
那就是它。如果你想创建另一个模板(让我们说product.view.html.twig
),只需扩展layout.html.twig
:
product.view.html.twig
{% extends '@AcmeDemo/layout.html.twig' %}
{% block content %}{% endblock %}
请注意,我正在使用命名空间语法,我认为它更具可读性,并且它被认为比通常的语法更快。