我有模板:
base.html.twig 内容:
<body>
<section class="main-content">
<div class="content">
{% embed "_partials/page_header.html.twig" %}
{% block page_header_h1 %}{% endblock %}
{% block page_header_h2 %}{% endblock %}
{% endembed %}
{% block body %}{% endblock %}
</div>
</section>
</body>
page_header.html.twig 内容:
<div class="text-wrapper typo alt center">
<h1>{% block page_header_h1 %}{% endblock %}</h1>
<h2>{% block page_header_h2 %}{% endblock %}</h2>
</div>
以及我正在做的子页面(例如 profile.html.twig )
{% extends 'base.html.twig' %}
{% block page_header_h1 %}My profile{% endblock %}
{% block page_header_h2 %}Here are details of your profile{% endblock %}
{% block body %}
content of the page
{% endblock %}
但是在page_header.html.twig
上我没有得到这些值,为什么?
答案 0 :(得分:0)
我不确定你为什么要让自己变得如此困难。您可以通过以下方法轻松避免这种情况:
<div class="text-wrapper typo alt center">
{% if page_header_h1 | default('') | trim != '' %}
<h1>{{ page_header_h1 }}</h1>
{% endif %}
{% if page_header_h2 | default('') | trim != '' %}
<h2>{{ page_header_h2 }}</h2>
{% endif %}
</div>
并在您的控制器中传递标题
$twig->render('profile.html.twig', [
'page_header_h1' => 'My profile',
'page_header_h2' => 'Here are details of your profile',
]);