У Magento 2.1 є 25 загальнодоступних постачальників даних про лістинг / мережу, налаштовані та використовуються. Класи та ui_component
файли їх постачальника даних наведені нижче
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
Виходячи з цієї інформації, схоже, що два програмісти базових класів кінцеві користувачі можуть використовувати для базування своїх компонентів сітки
- Magento \ Framework \ Перегляд \ Елемент \ UiComponent \ DataProvider \ DataProvider
- Magento \ Ui \ DataProvider \ AbstractDataProvider
Magento\Ui\DataProvider\AbstractDataProvider
Клас , здається, простіше з двох, і (здається ,?) Вимагає тільки конфігурації моделі ресурсів Magento. Модуль сітки клієнта Magento\Customer\Ui\Component\DataProvider
заснований на цьому класі і, схоже, має всі функції сортування, фільтрування тощо, необхідні для переліку сітки.
Чи існує якась причина Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider
- чи просто старший / новіший код використовують інший підхід до створення постачальника даних? Іншими словами, чи використовує Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider
внести якісь додаткові функції в таблицю, чи дозволяє іншим частинам системи робити справи з сіткою? Дивлячись на вихідний код, Magento\Framework\App\RequestInterface
здається інтригуючим - оскільки це означає, що ви можете звітувати про функціональність "безкоштовно" за допомогою цих сіток. Однак без широкого кодового сафарі я не впевнений, правда це чи ні, і я сподіваюся, що хтось має чітке пояснення, чому ви б використовували один клас над іншим.