Как добавить новый столбец в основной модуль административной сетки в Magento2 [дубликат]

magento.stackexchange https://magento.stackexchange.com//questions/87012

  •  13-12-2019
  •  | 
  •  

Вопрос

Мне нужно добавить новую колонку в сетку продаж и администратора клиентов в Magento2, а также как все, что мы знаем

Это было полезно?

Решение 2

Чтобы добавить пользовательский файл в основную сетку администратора в компоненте пользовательского интерфейса, нам нужно выполнить следующие шаги, но addColumnAfter не работает, исправьте меня, где я допустил ошибки.
1.Создать файл XML в приложении code sugarcode test 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="../../../../Ui/etc/ui_configuration.xsd">
            <columns name="sales_order_columns">
                <column name="title">
                    <argument name="data" xsi:type="array">
                        <item name="config" xsi:type="array">
                            <item name="filter" xsi:type="string">text</item>
                            <item name="add_field" xsi:type="boolean">true</item>
                            <item name="label" xsi:type="string" translate="true">Titles</item>
                            <item name="sortOrder" xsi:type="number">75</item>
                        </item>
                    </argument>
                </column>          
            </columns>
        </listing>

Чтобы добавить пользовательскую подачу в коллекцию, я использовал события, если какое -либо лучшее решение пожалуйста, предложите нам приложение code sugarcode test etc adminhtml events.xml

<?xml version="1.0"?>

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/Event/etc/events.xsd">
    <event name="sales_order_grid_collection_load_before">
        <observer name="sales_order_grid_test" instance="Sugarcode\Test\Model\Observer" method="addTest" />
    </event>

</config>
  1. приложение\код\Sugarcode est\Model\Observer.php

    namespace Sugarcode\Test\Model;
    
    class Observer
    {
        public function addTest(\Magento\Framework\Event\Observer $observer)
        {
            $obj=$observer->getEvent()->getOrderGridCollection();
            $obj->getSelect()->joinLeft(
                ['testt' => 'testtable'],
                "(main_table.entity_id = testt.id)",
                [
                    'testt.title as title'
                ]
            );
            //$this->printlogquery(true); 
            //return $obj;
        }
    }
    

Другие советы

Чтобы добавить новый столбец в сетку заказов, вам необходимо указать обновление для этой сетки.создайте новый файл Vendor/Module/view/adminhtml/ui_comComponent/sales_order_grid.xml в своем модуле со следующим содержимым:

<listing xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Ui/etc/ui_configuration.xsd">
<columns name="sales_order_columns">
    <column name="your_column_name" [class="You may specify your own renderer"]>
        <argument name="data" xsi:type="array">
            <item name="config" xsi:type="array">
                <item name="visible" xsi:type="boolean">false</item>
                <item name="label" xsi:type="string" translate="true">Label</item>
            </item>
        </argument>
    </column>
</columns>

но убедитесь, что запрошенное поле существует у соответствующего поставщика данных.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top