Magento2: sự khác biệt giữa ReferenceContainer và ReferenceBlock là gì


23

Cả hai referenceBlockreferenceContainercác thực thể được sử dụng trong bố trí trong magento2.
Sự khác biệt chính giữa chúng là gì và làm thế nào tôi có thể liên kết các thực thể này với magento1. *.

Câu trả lời:


38

về cơ bản các thùng chứa tương đương với các core/text_listkhối trong magento 1.
"về mặt triết học" chúng hoạt động như nhau, điểm khác biệt duy nhất là containerscác khối được xác định trước chỉ hỗ trợ các khối con khác.
Một số ví dụ là content, after.body.start, header-wrapper.
Bạn có thể thấy tất cả các container được xác định ví dụ trong Magento/Theme/view/base/page_layout/*.

Đây là một ví dụ từ 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>

về cơ bản những gì được định nghĩa là <container name="..." />có thể được truy cập bởi referenceContainer. những gì được tuyên bố là <block .... />có thể được tham chiếu bởireferenceBlock

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.