【问题标题】:How to add MassAction on Order Grid in Magento2?如何在 Magento2 的订单网格上添加 MassAction?
【发布时间】:2017-04-29 06:03:07
【问题描述】:

我想在 Magento2 的 Order Grid 中添加一个 MassAction。

我在 view/adminhtml/ui_component/sales_order_grid.xml 中添加 xml。通过添加这个 XML MassAction 显示在下拉列表中。但是当我选择 MassAction 时,我没有在发布请求中获得订单 ID。

<?xml version="1.0" encoding="UTF-8"?>
<listing xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
    <listingToolbar name="listing_top">
            <massaction name="listing_massaction">
                <action name="mass_order_assigntrackingnumber">
                    <argument name="data" xsi:type="array">
                        <item name="config" xsi:type="array">
                            <item name="type" xsi:type="string">order_assigntrackingnumber</item>
                            <item name="label" xsi:type="string" translate="true">Assign Tracking Number</item>
                            <item name="url" xsi:type="url" path="helloworld/orderprocessing/"/>
                        </item>
                    </argument>
                </action>
            </massaction>
    </listingToolbar>
</listing>

我在打印 POST 请求时得到了:-

Array
(
    [key] => 2c7824dfa98ff4e9f550d2f4d07e696c650fbb48448ac3f8a8377f1c793e9294
    [excluded] => false
    [filters] => Array
        (
            [placeholder] => true
        )

    [search] => 
    [namespace] => sales_order_grid
    [form_key] => hvUs2LDFHbjJN3zY
)

大规模行动控制器

<?php
    namespace Inchoo\Helloworld\Controller\Adminhtml\Orderprocessing;
    class Index extends \Magento\Backend\App\Action{

        public function execute(){
            $data = $this->getRequest()->getParams();
            echo "<pre>";print_r($data); die;
            die("Hello");
        }
    }
?>

请帮助我了解如何通过 Magento2 中的 MassAction 控制器中的自定义 MassAction 获取订单 ID ?

【问题讨论】:

    标签: php magento magento2


    【解决方案1】:

    大规模行动控制器

    由此更新代码:

    <?php
    namespace Inchoo\Helloworld\Controller\Adminhtml\Orderprocessing;
    class Index extends \Magento\Sales\Controller\Adminhtml\Order\AbstractMassAction {
    
        protected function massAction(AbstractCollection $collection){
            //your code here
            //Here you will get collection
        }
    }
    

    参考代码:/var/www/html/mage2/vendor/magento/module-sales/Controller/Adminhtml/Order/MassCancel.php

    【讨论】:

    • 错误即将到来 massAction() 必须兼容 Magento\Sales\Controller\Adminhtml\Order\AbstractMassAction::massAction(Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection $collection)
    • 检查 public function __construct 它应该是: public function __construct(Context $context, Filter $filter, CollectionFactory $collectionFactory) { parent::__construct($context, $filter); $this->collectionFactory = $collectionFactory; }
    • 参考这个文件:/var/www/html/mage2/vendor/magento/module-sales/Controller/Adminhtml/Order/MassCancel.php
    • 现在工作正常,先生。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-07
    • 2020-07-16
    • 1970-01-01
    • 2016-02-19
    • 1970-01-01
    • 1970-01-01
    • 2013-09-28
    相关资源
    最近更新 更多