#magento #grid #magento2 #adminhtml #uicomponents
#magento #сетка #magento2 #adminhtml #uicomponents
Вопрос:
Как реализовать массовые действия в сетке с использованием ui_component magento2. Я создал свой ui_component и должен реализовать massactions. Я также создал контроллеры для требуемых путей. Но почему-то это просто не работает.
ui_component/test_grid.xml
<massaction name="listing_massaction">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="selectProvider" xsi:type="string">test_grid.test_grid.test_grid_columns.ids</item>
<item name="component" xsi:type="string">Magento_Ui/js/grid/tree-massactions</item>
<item name="indexField" xsi:type="string">entity_id</item>
</item>
</argument>
<action name="reject">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="type" xsi:type="string">rejected</item>
<item name="label" xsi:type="string" translate="true">Reject</item>
<item name="url" xsi:type="url" path="*/*/MassDelete"><item/>
<item name="confirm" xsi:type="array">
<item name="title" xsi:type="string" translate="true">Reject items</item>
<item name="message" xsi:type="string" translate="true">Are you sure to reject selected Requests?</item>
</item>
</item>
</argument>
</action>
<action name="accept">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="type" xsi:type="string">accepted</item>
<item name="label" xsi:type="string" translate="true">Accept</item>
<item name="url" xsi:type="string">test/Index/Massaccept</item>
</item>
</argument>
</action>
</massaction>
Мои контроллеры находятся на пути:
Vendor/Module/Controller/Adminhtml/Index/Massaccept.php
Vendor/Module/Controller/Adminhtml/Index/Massreject.php
Массовые действия видны в сетке, но никуда не перенаправляются.
Ответ №1:
Обновите свой код, как показано ниже
<massaction name="listing_massaction">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="selectProvider" xsi:type="string">test_grid.test_grid.test_grid_columns.ids</item>
<item name="component" xsi:type="string">Magento_Ui/js/grid/tree-massactions</item>
<item name="indexField" xsi:type="string">entity_id</item>
</item>
</argument>
<action name="reject">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="type" xsi:type="string">rejected</item>
<item name="label" xsi:type="string" translate="true">Reject</item>
<item name="url" xsi:type="url" path="*/*/MassReject"><item/>
<item name="confirm" xsi:type="array">
<item name="title" xsi:type="string" translate="true">Reject items</item>
<item name="message" xsi:type="string" translate="true">Are you sure to reject selected Requests?</item>
</item>
</item>
</argument>
</action>
<action name="accept">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="type" xsi:type="string">Accept</item>
<item name="label" xsi:type="string" translate="true">Accept</item>
<item name="url" xsi:type="url" path="*/*/MassAccept"><item/>
<item name="confirm" xsi:type="array">
<item name="title" xsi:type="string" translate="true">Accept items</item>
<item name="message" xsi:type="string" translate="true">Are you sure to Accept selected Requests?</item>
</item>
</item>
</argument>
</action>
</massaction>
Ответ №2:
Попробуйте добавить файл маршрута по указанному ниже пути: NamespaceModulenameetcadminhtmlroutes.xml
Нравится,
<?xml version="1.0"?>
<!--
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
<router id="admin">
<route id="id" frontName="name">
<module name="Namespace_Modulename" />
</route>
</router>
</config>
Комментарии:
1. Добавьте приведенный выше код файла маршрута после завершения работы с файлом списка компонентов пользовательского интерфейса.