【问题标题】:Magento 2: Add Grid Column to Admin Sales Order Without Adding Column to Database?Magento 2:向管理销售订单添加网格列而不向数据库添加列?
【发布时间】:2017-04-28 08:59:33
【问题描述】:

我想在 magento 管理仪表板上的销售订单网格中添加一列。但是该列的值来自某个进程,而不是来自数据库。那可能吗?怎么做?提前致谢。

【问题讨论】:

    标签: php magento2


    【解决方案1】:

    您可以通过将名为 view/adminhtml/ui_component/sales_order_grid.xml 的文件添加到具有以下内容的自定义模块来向管理网格添加一列:

    <?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"/>
        <columns name="sales_order_columns">
            <column name="order_reference" class="Vendor\Example\Ui\Component\Listing\Column\Example">
                <argument name="data" xsi:type="array">
                    <item name="config" xsi:type="array">
                        <item name="dataType" xsi:type="string">text</item>
                        <item name="visible" xsi:type="boolean">true</item>
                        <item name="label" xsi:type="string" translate="true">Example Column</item>
                    </item>
                </argument>
            </column>
        </columns>
    </listing>
    

    您的Example.php-文件应该扩展Magento\Ui\Component\Listing\Columns\Column 并有一个prepareDataSource()-方法来填充数据:

    /**
     * @param array $dataSource
     * @return array
     */
    public function prepareDataSource(array $dataSource)
    {
        if (isset($dataSource['data']['items'])) {
            foreach ($dataSource['data']['items'] as & $item) {
                $item[$this->getData('name')] = 'Something'
            }
        }
    
        return $dataSource;
    }
    

    请注意,如果要添加排序和过滤选项,则需要添加一些其他调整,但这取决于您要在列中显示的数据类型。

    【讨论】:

    • 我知道这是一篇旧帖子,但您是否知道添加排序和过滤选项的好资源/教程?
    • 使用这个我可以在网格中得到这个文本“something” for everty order,但我想得到动态值而不是那个....那我应该怎么做呢?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多