Ich habe in Magento 2 gearbeitet und einige von mir installierte Module (im Frontend) überschrieben.
Heute bin ich jedoch auf etwas gestoßen, das mir noch nie begegnet ist. Das Modul, das ich verwendet habe, enthält einen Block, der Folgendes enthält:
<referenceBlock name="product.info.details">
<block class="Vender\Module\Block\Catalog\Related" name="posts.tab" as="blog.posts"
template="Vender_Module::catalog/posts.phtml" group="detailed_info">
</block>
</referenceBlock>
Es setzt seinen Namen:
posts.tab
und verwendet dann das as , um den Aufruf über zu ermöglichen:
as = "blog.posts"
Als ich versuchte, den zu entfernenden Block mit dem Namen as zu referenzieren, bemerkte ich, dass er nicht von der Seite entfernt wurde:
<referenceBlock name="product.info.details">
<referenceBlock as="blog.posts" remove="true"/>
</referenceBlock>
Also habe ich nachgesehen, wie die Seite im Frontend tatsächlich aufgerufen wurde (nur für den Fall, dass sie an einer anderen Stelle umbenannt wurde oder nicht den Namen posts.tab verwendet). Der Blockname wird mit posts.tab aufgerufen , was in Ordnung ist da ich nur auf diesen Block verweisen kann, um ihn zu entfernen. Das hat gut funktioniert.
Aber meine Frage ist, warum wird der Block nicht mit as durchgezogen und stattdessen mit dem Namen durchgezogen .
Zweitens, worum geht es im as , denn offensichtlich können Blöcke ohnehin keine widersprüchlichen Namen haben und sollten eindeutig sein - aber ich könnte völlig falsch liegen.
quelle