Como adicionar uma nova coluna ao módulo principal da grade administrativa no Magento2 [duplicado]
-
13-12-2019 - |
Pergunta
Preciso adicionar nova coluna à grade de vendas e administrador de clientes no Magento2 e também como tudo o que sabemos que ele usa componente da interface do usuário, depois como estender a grade com a interface do usuário e também os módulos de boletins de boletins ex -UI ex
Solução 2
para adicionar um campo personalizado à grade administrativa principal no componente UI, precisamos seguir as etapas abaixo, mas addColumnAfter não está funcionando, corrija-me onde cometi erros.
1.Crie um arquivo XML no app 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>
Para adicionar arquivado personalizado à coleção, usei eventos se houver uma solução melhor, sugira -nos app 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>
app\code\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; } }
Outras dicas
Para adicionar uma nova coluna na grade de pedidos, você precisa especificar a atualização para esta grade.crie um novo arquivo Vendor/Module/view/adminhtml/ui_component/sales_order_grid.xml em seu módulo com o seguinte conteúdo:
<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>
mas certifique-se de que o campo solicitado exista no provedor de dados correspondente