Magento2: อะไรคือความแตกต่างระหว่างการอ้างอิงคอนเทนเนอร์และการอ้างอิงบล็อก


23

ทั้งสองreferenceBlockและreferenceContainerเอนทิตีถูกใช้ในเลย์เอาต์ใน magento2
อะไรคือความแตกต่างที่สำคัญระหว่างพวกเขากับฉันจะเชื่อมโยงเอนทิตี้เหล่านี้กับ magento1 ได้อย่างไร *

คำตอบ:


38

โดยพื้นฐานแล้วภาชนะบรรจุนั้นเทียบเท่ากับcore/text_listบล็อกในวีโอไอพี 1.
“ ในเชิงปรัชญา” พวกเขาทำงานเหมือนกันความแตกต่างเพียงอย่างเดียวคือcontainersบล็อกที่กำหนดไว้ล่วงหน้าที่สนับสนุนบล็อกลูกอื่นเท่านั้น
ตัวอย่างบางส่วนcontent, ,after.body.start ท่านสามารถเข้าดูภาชนะบรรจุที่กำหนดไว้ทั้งหมดเช่นใน header-wrapper
Magento/Theme/view/base/page_layout/*

empty.xmlนี่คือตัวอย่างจาก

<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_layout.xsd">
    <container name="root">
        <container name="after.body.start" as="after.body.start" before="-" label="Page Top"/>
        <container name="page.wrapper" as="page_wrapper" htmlTag="div" htmlClass="page-wrapper">
            <container name="global.notices" as="global_notices" before="-"/>
            <container name="main.content" htmlTag="main" htmlId="maincontent" htmlClass="page-main">
                <container name="columns.top" label="Before Main Columns"/>
                <container name="columns" htmlTag="div" htmlClass="columns">
                    <container name="main" label="Main Content Container" htmlTag="div" htmlClass="column main"/>
                </container>
            </container>
            <container name="page.bottom" as="page_bottom" label="Before Page Footer Container" after="main.content" htmlTag="div" htmlClass="page-bottom"/>
            <container name="before.body.end" as="before_body_end" after="-" label="Page Bottom"/>
        </container>
    </container>
</layout>

โดยทั่วไปสิ่งที่กำหนดให้เป็นสามารถเข้าถึงได้โดย<container name="..." /> referenceContainerสิ่งที่ประกาศว่า<block .... />สามารถอ้างอิงได้referenceBlock

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.