树枝-包含方块

时间:2018-07-04 10:03:01

标签: twig

我有模板:
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上我没有得到这些值,为什么?

1 个答案:

答案 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',  
]);