亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

只替換樹枝中的一個嵌套塊

只替換樹枝中的一個嵌套塊

PHP
Helenr 2022-07-22 10:34:32
我有以下樹枝結構:基地.twig<html>  <head>  </head>  <body class="fade-in {{body_class}}">    <main>      {% block menu %}          {% include 'menu.twig' %}      {% endblock %}    </main>  </body></html>菜單.twig<header>  <div>    {% block menu_main %}       {% include 'menu-main.twig' %}    {% endblock %}    {% block menu_country %}        {% include 'menu-country.twig' with { menu_country: dropdownland } %}    {% endblock %}  </div></header>孩子.twig{% extends "base.twig" %}{% block menu %}  {% block menu_country %}    {% include 'menu-country.twig' with { menu_country: menu_ap_countries } %}  {% endblock %}{% endblock %}我想要實現的是,只需替換 child.twig 中的塊menu_country。如果我使用上面的方法,整個塊菜單將被替換為只有menu_country,這意味著塊menu_main丟失。我也試過{% extends "base.twig" %}{% block menu %}  {{ parent() }}  {% block menu_country %}    {% include 'menu-country.twig' with { menu_country: menu_ap_countries } %}  {% endblock %}{% endblock %}但這會渲染塊menu_country兩次。有什么辦法可以做到這一點?
查看完整描述

2 回答

?
Qyouu

TA貢獻1786條經驗 獲得超11個贊

由于@DarkBees 的回答進一步調查后,我遇到了嵌入功能,這正是我在這種情況下所需要的。所以擴展模板變成了這樣:


{% block menu %}

  {% embed 'menu.twig'%}

    {% block menu_country %}

      {% include 'menu-country.twig' with { menu_country: menu_ap_countries } %}

    {% endblock %}

  {% endembed %}

{% endblock %}

通過嵌入,我可以覆蓋里面的塊menu.twig


查看完整回答
反對 回復 2022-07-22
?
開心每一天1111

TA貢獻1836條經驗 獲得超13個贊

包括模板并不意味著您正在模板中導入所述塊。這意味著只有塊menu將存在于內部child.twig。


在您的第一個示例中,您實際上只是覆蓋該塊menu并在其中創建一個新塊menu_country。


在您的第二個示例中,您twig要輸出塊的默認內容menu并向其附加一個新塊menu_country。


一個可能的解決方案是將設置更改為此,例如


菜單.twig


<header>

  <div>

    {% block menu_main %}

       {% include 'menu-main.twig' %}

    {% endblock %}


    {% block menu_country %}

        {% include 'menu-country.twig' %}

    {% endblock %}

  </div>

</header>

菜單國家.twig


<ul class="country">

{% for country in menu_country|default(dropdownland) %}

    <li><a href="#">{{ country }}</a></li>

{% endfor %}

</ul>

孩子.twig


{% extends "base.twig" %}


{% block menu %}

    {% include 'menu.twig' with { menu_country: menu_ap_countries, } %}

{% endblock %}


查看完整回答
反對 回復 2022-07-22
  • 2 回答
  • 0 關注
  • 105 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號