Trong Magento 2.1, có 25 nhà cung cấp dữ liệu lưới / danh sách thành phần UI được cấu hình và sử dụng. Các lớp và ui_component
tệp nhà cung cấp dữ liệu của họ được liệt kê bên dưới
Magento\Bundle\Ui\DataProvider\Product\BundleDataProvider bundle_product_listing.xmlMagento\Catalog\Ui\DataProvider\Product\Attributes\Listing product_attributes_grid.xml
Magento\Catalog\Ui\DataProvider\Product\ProductCustomOptionsDataProvider product_custom_options_listing.xml
Magento\Catalog\Ui\DataProvider\Product\ProductDataProvider configurable_associated_product_listing.xml
Magento\Catalog\Ui\DataProvider\Product\ProductDataProvider product_listing.xml
Magento\Catalog\Ui\DataProvider\Product\Related\CrossSellDataProvider crosssell_product_listing.xml
Magento\Catalog\Ui\DataProvider\Product\Related\RelatedDataProvider related_product_listing.xml
Magento\Catalog\Ui\DataProvider\Product\Related\UpSellDataProvider upsell_product_listing.xml
Magento\Cms\Ui\Component\DataProvider cms_block_listing.xml
Magento\Cms\Ui\Component\DataProvider cms_page_listing.xml
Magento\ConfigurableProduct\Ui\DataProvider\Attributes product_attributes_listing.xml
Magento\Customer\Ui\Component\DataProvider customer_listing.xml
Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider customer_online_grid.xml
Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider sales_order_creditmemo_grid.xml
Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider sales_order_grid.xml
Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider sales_order_invoice_grid.xml
Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider sales_order_shipment_grid.xml
Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider sales_order_view_creditmemo_grid.xml
Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider sales_order_view_invoice_grid.xml
Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider sales_order_view_shipment_grid.xml
Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider search_synonyms_grid.xml
BraintreeTransactionsDataProvider (virtual type) braintree_report.xml
Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider
Magento\GroupedProduct\Ui\DataProvider\Product\GroupedProductDataProvider grouped_product_listing.xml
Magento\Review\Ui\DataProvider\Product\ReviewDataProvider review_listing.xml
Magento\Theme\Ui\Component\Design\Config\DataProvider design_config_listing.xml
Dựa trên thông tin này, dường như có hai lớp lập trình viên người dùng cuối có thể sử dụng để dựa trên các thành phần lưới của họ
- Magento \ Framework \ View \ Element \ UiComponent \ DataProvider \ DataProvider
- Magento \ Ui \ DataProvider \ Tóm tắtDataProvider
Các Magento\Ui\DataProvider\AbstractDataProvider
lớp học dường như đơn giản hơn trong hai, và (dường như?) Chỉ yêu cầu cấu hình của một mô hình tài nguyên Magento. Magento\Customer\Ui\Component\DataProvider
Mô-đun lưới khách hàng dựa trên lớp này và dường như có tất cả chức năng sắp xếp, lọc, v.v. cần thiết cho danh sách lưới.
Có một lý do Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider
tồn tại - hay chỉ là mã cũ hơn / mới hơn có cách tiếp cận khác để tạo nhà cung cấp dữ liệu? Nói cách khác, việc sử dụng Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider
mang lại bất kỳ tính năng bổ sung nào cho bảng hoặc cho phép các bộ phận khác của hệ thống thực hiện mọi việc với lưới? Nhìn vào mã nguồn, Magento\Framework\App\RequestInterface
dường như hấp dẫn - vì nó ngụ ý là bạn có thể báo cáo chức năng "miễn phí" với những lưới. Tuy nhiên, không có mã safari rộng rãi, tôi không chắc điều đó có đúng hay không và tôi hy vọng ai đó có một lời giải thích rõ ràng về lý do tại sao bạn sử dụng một lớp khác.