我正在尝试覆盖自定义模块中/vendor/magento/module-grouped-product/view/frontend/layout/catalog_product_view_type_grouped.xml
中定义的模板。该文件有一个名为product.info.grouped
的块,其定义如下:
<block class="Magento\GroupedProduct\Block\Product\View\Type\Grouped" name="product.info.grouped" before="product.info.addtocart" template="product/view/type/grouped.phtml"/>
所以我创建了一个文件/app/code/FortyThree/GroupedConfigurableProduct/view/frontend/layout/catalog_product_view_type_grouped.xml
并在其中
<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/layout_generic.xsd">
<referenceBlock name="product.info.grouped">
<action method="setTemplate">
<argument name="template" xsi:type="string">FortyThree_GroupedConfigurableProduct::product/view/type/grouped.phtml</argument>
</action>
</referenceBlock>
</layout>
并创建了相应的.phtml文件,但它并没有覆盖原始模板文件。还有什么我需要做的才能让覆盖注册吗?我已经尝试了setup:upgrade
并且缓存了缓存似乎无效。我还在Magento_GroupedProduct
的序列部分设置了module.xml
,以确保其后加载。
看起来我的catalog_product_view_type_grouped.xml
似乎没有被阅读,因为我在那里做的事似乎没什么关系。
答案 0 :(得分:0)
您的布局文件并不好。
这应该可以解决问题:
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceBlock name="product.info.grouped">
<action method="setTemplate">
<argument name="template" xsi:type="string">FortyThree_GroupedConfigurableProduct::product/view/type/grouped.phtml</argument>
</action>
</referenceBlock>
</body>
</page>
另外,不要忘记在模块中为GroupedProduct添加依赖项。
有几种方法可以检查您是否正确引用了一个块。您可以简单地使用删除,以查看是否可以确认您有正确的阻止。