在扩展模板中扩展模板
extend template in extended template
我是 twig 的初学者,很难制定出将框架和消息框包含到我的页面中的标准方法。
这是我的代码以及我希望它如何运行。这三天我一直在尝试不同的方法,但无济于事:
index.php
echo $twig->render('mypage.twig');
mypage.twig
{%extends 'main_frame.twig'%}
{%block title}This is an example{%endblock%}
{%block body%}
<p>This page is built with Twig</p>
{%extends 'message_box.twig'%}
{%block body%}
<h1>Twig is fun</h1>
{%endblock%}
{%block%}
main_frame.twig
<html>
<head>
<title>{%block title%}{%endblock%}</title>
</head>
<body>{%block body%}{%endblock%}</body>
</html>
message_box.twig
<div style='boarder: thin solid #f0f0f0;'>
{%block body%}{%endblock%}
</div>
呈现的代码应该是这样的:
<html>
<head>
<title>This is an example</title>
</head>
<body>
<p>This page is built with Twig</p>
<div style='boarder: thin solid #f0f0f0;'>
<h1>Twig is fun</h1>
</div>
</body>
</html>
您正在查找标签 {% embed %}
。它是 extends
和 include
的混合,允许您覆盖嵌入模板中的块,例如
main.twig
<!DOCTYPE html>
<html>
<head>
<title>{%block title%}{%endblock%}</title>
</head>
<body>{%block body%}{%endblock%}</body>
</html>
page.twig
{% extends "main.twig" %}
{% block body %}
{% embed "message.twig" %}
{% block body %}
This is my message
{% endblock %}
{% endembed %}
{% endblock %}
message.twig
<div class="message">
{%block body%}{%endblock%}
</div>
Extends
只能在模板中使用一次,甚至不能在块内使用
我是 twig 的初学者,很难制定出将框架和消息框包含到我的页面中的标准方法。
这是我的代码以及我希望它如何运行。这三天我一直在尝试不同的方法,但无济于事:
index.php
echo $twig->render('mypage.twig');
mypage.twig
{%extends 'main_frame.twig'%}
{%block title}This is an example{%endblock%}
{%block body%}
<p>This page is built with Twig</p>
{%extends 'message_box.twig'%}
{%block body%}
<h1>Twig is fun</h1>
{%endblock%}
{%block%}
main_frame.twig
<html>
<head>
<title>{%block title%}{%endblock%}</title>
</head>
<body>{%block body%}{%endblock%}</body>
</html>
message_box.twig
<div style='boarder: thin solid #f0f0f0;'>
{%block body%}{%endblock%}
</div>
呈现的代码应该是这样的:
<html>
<head>
<title>This is an example</title>
</head>
<body>
<p>This page is built with Twig</p>
<div style='boarder: thin solid #f0f0f0;'>
<h1>Twig is fun</h1>
</div>
</body>
</html>
您正在查找标签 {% embed %}
。它是 extends
和 include
的混合,允许您覆盖嵌入模板中的块,例如
main.twig
<!DOCTYPE html>
<html>
<head>
<title>{%block title%}{%endblock%}</title>
</head>
<body>{%block body%}{%endblock%}</body>
</html>
page.twig
{% extends "main.twig" %}
{% block body %}
{% embed "message.twig" %}
{% block body %}
This is my message
{% endblock %}
{% endembed %}
{% endblock %}
message.twig
<div class="message">
{%block body%}{%endblock%}
</div>
Extends
只能在模板中使用一次,甚至不能在块内使用