0

私は小枝ファイルのそのような階層を持っています

私のメイン(コントローラー用)の小枝

{% extends "MainSiteBundle::layout.html.twig" %}

{% block footer_moderator_buttons %}
    some buttons
{% endblock %}

{% block content_body %}
    <p>hello moderator</p>

    {{ include ('MainBlogBundle:_parts:postList.html.twig', {'postList': aPostDraft}) }}

{% endblock %}

postList.html.twig

<div class="post-list">
{% for postSingle in postList %}
    {{ include ('MainBlogBundle:_parts:postSingle.html.twig', {'postSingle': postSingle}) }}
{% endfor %}
</div>

postSingle.html.twig

<div class="post">
    <div class="post-header">
        <a class="title" href="3">{{ postSingle.title }}</a>
    </div>
    <div class="post-meta">
        <div>Date: {{ postSingle.date|date('D M Y') }}</div>
        <div>Category: <a href="#">{{ postSingle.getCategory.getTitle }}</a></div>
        <div>Author: <a href="#">{{ postSingle.getUser.username }}</a>
        </div>
    </div>
    <div class="post-body">
        <div class="content">
            <img width="450" height="200" src="#">
            <div class="text">{{ postSingle.content }}</div>
        </div>
    </div>

    <div class="post-footer">
        {% block footer_moderator_buttons %}f{% endblock %}
        <div>Views: 152</div>
        <div>Comments: 1231</div>
        <div>
            <a class="link" href="#">More... </a>
        </div>
    </div>
</div>

ご覧のとおり、最後 (postSingle.html.twig) にはブロック "footer_moderator_buttons" があるため、メインの小枝(最初のもの) から変更するにはどうすればよいですか? 現在は機能していません。何を変更する必要がありますか?

4

3 に答える 3

0

つまり、あなたの質問は、実際には「どのように \ 小枝ができるかを理解したい」ということです。その質問への答えは、「メインのブロックを小さいブロックに上書きすることはできません」です。

小枝を使用したい場合は、新しいファイルを作成し、ヘッダー、フッター、メニューなどのコンポーネントを何度も「PUT」するphp include()の方法で考えるのをやめなければなりません.

小枝では、上書きできるが必要ではない空のスペースとして想像できるブロックでメインの小枝ファイルを定義します。確かに、MainSiteBundle::layout.html.twig を拡張するファイルに、postList.html.twig を含めることができることを意味します。同じことが postSingle.html.twig にも当てはまります。

間違った側からブロックを上書きしようとしないことを除いて、小枝のロジックをキャッチすると思います-この場合、 MainSiteBundle::layout.html.twig から小さな部分に。

于 2013-07-08T06:29:03.567 に答える
0

これはどう:

{% extends "MainSiteBundle::layout.html.twig" %}
....
{% block footer_moderator_buttons %}
{{ parent() }}
{% endblock %}

ウープスは親を入れませんでした.. {{parent()}} は、拡張小枝から {% block footer_moderator_buttons %}{% endblock %} を継承します。

于 2014-11-06T10:19:50.997 に答える