Magento 2 - 管理网格向集合添加过滤器

szu*_*mel 5 collections filter magento2

我通过 XML UI 组件在 admin 中创建了一个网格。

我需要通过 URL 参数过滤集合,但我不知道如何实现。我尝试将 RequestInterface 注入集合,但过滤器不起作用。

di.xml

<virtualType name="SlideListingDataProvider" type="Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider">
    <arguments>
        <argument name="collection" xsi:type="object" shared="false">xxx\xxx\Model\ResourceModel\Grid\Slide\Collection</argument>
        <argument name="filterPool" xsi:type="object" shared="false">SlideListingFilterPool</argument> <!-- Define new object for filters -->
    </arguments>
</virtualType>
<virtualType name="SlideListingFilterPool" type="Magento\Framework\View\Element\UiComponent\DataProvider\FilterPool">
    <arguments>
        <argument name="appliers" xsi:type="array">
            <item name="regular" xsi:type="object">Magento\Framework\View\Element\UiComponent\DataProvider\RegularFilter</item>
            <item name="fulltext" xsi:type="object">Magento\Framework\View\Element\UiComponent\DataProvider\FulltextFilter</item>
        </argument>
    </arguments>
</virtualType>
<virtualType name="xxx\xxx\Model\ResourceModel\Grid\Slide\Collection" type="xxx\xxx\Ui\Component\DataProvider\SearchResult\Slide">
    <arguments>
        <argument name="mainTable" xsi:type="string">advox_sliders_slide</argument>
        <argument name="resourceModel" xsi:type="string">xxx\xxx\Model\ResourceModel\Slide</argument>
    </arguments>
</virtualType>
Run Code Online (Sandbox Code Playgroud)

Kho*_*nav 2

你必须在ui组件中的update_url之后写

`<item name="update_url" xsi:type="url" path="mui/index/render"/>`
Run Code Online (Sandbox Code Playgroud)

在此行之后您必须添加以下代码

<item name="filter_url_params" xsi:type="array"> <item name="status" xsi:type="boolean">1</item> </item>

现在你必须在 url 中传递状态值。