Como adicionar uma nova coluna ao módulo principal da grade administrativa no Magento2 [duplicado]

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

  •  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

Foi útil?

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>
  1. 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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top