Я немного поработал в Magento 2 и переписывал некоторые установленные мной модули (на веб-интерфейсе).
Однако сегодня я только что столкнулся с чем-то, с чем я не сталкивался раньше. Модуль, который я использовал, имеет внутри блок, который имеет следующее:
<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>
Он устанавливает свое имя:
posts.tab
а затем использует as, чтобы разрешить вызов через:
а = "blog.posts"
Когда я попытался сослаться на блок, который нужно удалить, используя имя as, я заметил, что он не удаляет его со страницы:
<referenceBlock name="product.info.details">
<referenceBlock as="blog.posts" remove="true"/>
</referenceBlock>
поэтому я посмотрел, что на самом деле вызывается на странице во внешнем интерфейсе (только в том случае, если она была переименована где-то еще или не использовала имя posts.tab) - имя блока вызывается с posts.tab , что хорошо как я могу просто сослаться на этот блок, чтобы удалить его. Это работало нормально.
Но мой вопрос заключается в том, почему блок не проходит через as и вместо этого используется имя .
Во-вторых, какой смысл в as , потому что блоки, очевидно, не могут иметь конфликтующих имен в любом случае и должны быть уникальными - но я могу быть совершенно неправ.
источник