【问题标题】:Magento 2 - How to override block templateMagento 2 - 如何覆盖块模板
【发布时间】:2016-05-18 05:09:20
【问题描述】:

我尝试覆盖

vendor\magento\module-multishipping\view\frontend\templates\checkout\addresses.phtml

我创建布局

app\code\My\CustomModule\view\frontend\layout\multishipping_checkout_addresses.xml

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceContainer name="content">
            <block class="Magento\Multishipping\Block\Checkout\Addresses" name="checkout_addresses" template="My_CustomModule::checkout/addresses.phtml" cacheable="false">
            </block>
        </referenceContainer>
    </body>
</page>

还有模板

app\code\My\CustomModule\view\frontend\templates\checkout\addresses.phtml

<h1>It works </h1>

它不起作用...请帮助我! 谢谢。

【问题讨论】:

    标签: php magento2 magento-2.0


    【解决方案1】:
    <referenceBlock name='copyright'>
        <action method='setTemplate'>
            <argument name='template' xsi:type='string'>Dfr_Backend::page/copyright.phtml</argument>
        </action>
    </referenceBlock>
    

    【讨论】:

    • 什么是“Dfr_Backend”,为什么在每个如何更改模板的示例中都如此,但从未解释过?那是自定义模块吗?如果我想在我的主题中覆盖一个模板,但我没有自定义模块,我应该把它放在哪里,语法是什么?
    • Dfr_Backend 是一个自定义模块,其中包含新的(自定义)模板。你应该指定你的模块名称而不是Dfr_Backend
    • 为什么要更改示例的名称。如果您根据示例提出答案会更容易
    【解决方案2】:

    &lt;action&gt; 指令已弃用。您还可以使用:

    <referenceBlock name="form.subscribe" template="{Vendor_Module}::newsletter/subscribe.phtml" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-02
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-20
      相关资源
      最近更新 更多