Каталог ui_component содержит XML-определение сетки (или формы), используемой в серверной части. В вашем файле макета вы можете ссылаться на компонент пользовательского интерфейса с помощью:
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<update handle="styles"/>
<body>
<referenceContainer name="content">
<uiComponent name="sample_demolist_listing"/>
</referenceContainer>
</body>
</page>
Затем будет загружен файл: view / adminhtml / ui_component / sample_demolist_listing.xml, здесь вы определяете (для сетки), какой источник данных вы хотите использовать, какие поля доступны для отображения, поля, по которым вы хотите фильтровать, и массовые действия. См. Https://github.com/Genmato/M2_Sample/blob/7c0c771c4d66f2ea4eec285bfb9f8ad5d1c67999/view/adminhtml/ui_component/sample_demolist_listing.xml (файл слишком большой, чтобы включить его здесь).
Источником данных является то, что ссылка в ui_component xml создается через di.xml путем определения:
<type name="Magento\Framework\View\Element\UiComponent\DataProvider\CollectionFactory">
<arguments>
<argument name="collections" xsi:type="array">
<item name="sample_demolist_listing_data_source" xsi:type="string">Genmato\Sample\Model\ResourceModel\Demo\Grid\Collection</item>
</argument>
</arguments>
</type>
В этом случае коллекция используется из Model\ResourceModel\Demo\Grid\Collection
.
См. Https://github.com/Genmato/M2_Sample/releases/tag/0.7.6 для использования в вашем собственном модуле.
Владимир Керхофф
источник