Как добавить новый столбец в основной модуль административной сетки в Magento2 [дубликат]
-
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>
приложение\код\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>
но убедитесь, что запрошенное поле существует у соответствующего поставщика данных.