Erro do produto de migração Magento: UiComponentFactory-> argumentResolver ('created_by', NULL)

9

Estou tentando migrar meu Magento 1.9.3.4 para Magento 2.2.2 com a ferramenta de migração de dados.

Eu fiz isso e a loja está funcionando no host local; Eu tenho os clientes, vendas, páginas estáticas e produtos.

Eu recebo esse erro fatal quando tentei editar um produto:

Erro fatal: TypeError não detectado: argumento 2 passado para Magento \ Framework \ View \ Element \ UiComponentFactory :: argumentosResolver () deve ser do tipo array, nulo, chamado em D: \ xampp \ htdocs \ magento2 \ vendor \ magento \ framework \ View \ Element \ UiComponentFactory.php na linha 212 e definido em D: \ xampp \ htdocs \ magento2 \ fornecedor \ magento \ framework \ View \ Element \ UiComponentFactory.php: 164 Rastreio de pilha:

0 D: \ xampp \ htdocs \ magento2 \ vendor \ magento \ framework \ View \ Element \ UiComponentFactory.php (212): Magento \ Framework \ View \ Element \ UiComponentFactory-> argumentResolver ('created_by', NULL)

1 D: \ xampp \ htdocs \ magento2 \ vendedor \ magento \ módulo-ui \ Component \ Form \ Field.php (84): Magento \ Framework \ View \ Element \ UiComponentFactory-> create ('created_by', '', Array )

2 D: \ xampp \ htdocs \ magento2 \ vendor \ magento \ framework \ View \ Layout \ Generator \ UiComponent.php (159): Magento \ Ui \ Component \ Form \ Field-> prepare ()

3 D: \ xampp \ htdocs \ magento2 \ vendor \ magento \ framework \ View \ Layout \ Generator \ UiComponent.php (156): Magento \ Framework \ View \ Layout \ Generator \ UiComponent-> prepare em D: \ xampp \ htdocs \ magento2 \ vendor \ magento \ framework \ View \ Element \ UiComponentFactory.php na linha 164

Alguma sugestão?

davincy
fonte
Você já fez a indexação>
Amit Bera
? Tem u feito indexação Espero atributo personalizado que created_by' sugerem excluir este atributo e, em seguida, experimentá-lo
Amit Bera

Respostas:

13

Eu tive exatamente o mesmo erro ao criar um módulo personalizado. Não tenho certeza se isso resolverá o seu caso, mas talvez ajude a esclarecer o que está acontecendo.

No meu xml de layout personalizado, eu tinha um uiComponent que ainda não estava definido. Arquivo:

MinhaEmpresa / MeuModelo / view / adminhtml / layout / minhaempresa_mymodule_index_index.xml

<uiComponent name="my_custom_form" /> <!-- my_custom_form.xml file does not exist -->

Definir este componente de interface do usuário (ou remover o nó uiComponent no meu xml de layout) resolveu o problema para mim.

Mark Rieth
fonte
4

Eu recebi esse erro após a migração e um dos atributos tinha um costume frontend_input. Vejo na sua pilha rastrear que o problema está com o created_bycampo. Talvez você deva definir o frontend_inputcampo para textou algo semelhante.

Zsolti
fonte
4

No nosso caso, esse problema também estava relacionado a uma migração de 1.9.4 a 2.2.7 e foi a um módulo de pré-encomenda que adicionou atributos ao site Magento 1.

Tivemos que atualizar a tabela eav_attributee alterar frontend_inputde 0para text.

Veja nossa consulta ao banco de dados abaixo:

UPDATE  magento2.eav_attribute  SET  frontend_input ='text' WHERE  attribute_id = 186;
UPDATE  magento2.eav_attribute  SET  frontend_input ='text' WHERE  attribute_id = 187;
mestre
fonte
Obrigado por me ajudar a resolver o problema.
Navin Bhudiya 13/03/19
3

Certifique-se de que o <uiComponent name="registration_form" />nome do uiComponent seja igual ao nome do componente xml em MyCompany/MyModule/view/frontend/ui_component/registration_form.xml

Ledian Hymetllari
fonte
3

Migrei os dados de magento 1.9.3.7para magento 2.2.5usando a ferramenta de migração de dados. Quando clico no botão Adicionar produto no painel do administrador, ele me mostra o mesmo erro. A maneira que eu resolvi foi ir para Admin-> Loja-> Conjunto de Atributos . E editou o conjunto de atributos Defaulte Migration_Default. Inicialmente, o Migration_DefaultAtributo tinha os conjuntos de atributos, mas o Defaultestava vazio. Eu adicionei os atributos ao Default Attribute Sete executei o reindexcomando

sudo php bin/magento indexer:reindex

Verifique também se o Schedule Design Updategrupo contém os seguintes atributos:

  • custom_design_from

  • custom_design_to

  • design personalizado

  • custom_layout

E funcionou para mim ...;)

Usman Yousaf
fonte
2

Você pode verificar se o valor frontend_input do atributo é válido. Se você tiver um campo personalizado, verifique se o componente de front-end está definido corretamente.

Babarus George
fonte
2

No meu caso, encontrei esse atributo e alterei o texto para a área de texto. Isso resolve o problema.

Para fazer isso, você precisa editar o atributo, mas no modo de inspeção.

Clique com o botão direito do mouse em Rótulo de 'tipo de entrada de catálogo', desça para encontrar 'opção de seleção' e remova desativado = 'desativado'. Isso ativará a seleção de opção e você poderá mudar para o texto agora e salvar.

desativar atributo

BartZalas
fonte
2

No meu caso,

Encontrei o atributo created_by no "STORE -> [Attributes] Product".

insira a descrição da imagem aqui

E alterou o frontend_label para "any_sting ...",

insira a descrição da imagem aqui

Deveria ter valor.

Isso resolve o problema.

Lee Derting
fonte
1

No meu caso, tive que excluir o atributo que está causando o problema. Por exemplo, era um nome de atributo de produto personalizado preorder. Eu apaguei o atributo e funcionou bem. Nenhuma das soluções acima foi aplicável para mim, pois o atributo não foi mencionado em nenhum arquivo xml.

Arvind07
fonte
1

Migrei do magento 1.9.4 para 2.3.3 e consegui o problema.

Tivemos que atualizar a tabela eav_attribute e o campo frontend_input de 0 para "text". Você pode pesquisar o atributo com frontend_input= '0' Consulte nossa consulta ao banco de dados abaixo:

SELECT * FROM `eav_attribute` WHERE `frontend_input` = '0'

Vejo que os atributos com attribute_code são "preorder" e "preorderdescript"

UPDATE  eav_attribute  SET  frontend_input ='text' WHERE  attribute_code = 'preorder';
UPDATE  eav_attribute  SET  frontend_input ='text' WHERE  attribute_code = 'preorderdescript';

Boa sorte!

SyLuu - Leric
fonte
Obrigado! Isso funcionou para mim ao atualizar do 1.8.1.0 para o 2.3.4
Dan Norris
0

Tenho lutado com o mesmo problema após a migração do Magento 1.7 para o Magento 2.

Eu acho que você tem um problema com este atributo do produto: created_by

Primeiro você precisa entender o papel desse atributo, você o está usando no seu projeto Magento 1? pode ser definido com um módulo Magento 1.

No meu caso, tive um problema com outro atributo personalizado: aitfiles_titlee, como não preciso dele, removi-o do banco de dados Magento 2.

delete from eav_attribute where attribute_code="aitfiles_title";

Se você gostaria de fazer o mesmo para o seu atributo:

delete from eav_attribute where attribute_code="created_by";

Funciona para mim e posso acessar a página do produto no painel de administração do Magento 2.

Abdelkebir ELHARFALI
fonte
0

Você pode acessar seus conjuntos de atributos e remover o created_by do respectivo grupo de produtos e reindexar a loja. Isso resolveu meu problema.

Rafael Corrêa Gomes
fonte
0

Eu tenho um problema semelhante. Para mim, foi um problema com o atributo personalizado. Nesse caso, faz parte \ UiComponentFactory-> argumentResolver ('created_by', NULL) e o atributo é created_by.

Eu o tinha na tabela eav_attribute, mas estava ausente na lista de atributos do produto em admin. Acabei de removê-lo por meio de programação. Algo parecido:

// $this->eavSetupFactory - \Magento\Eav\Setup\EavSetupFactory 
$eavSetup = $this->eavSetupFactory->create();
$entityTypeId = 4; // For catalog_product attribute
$eavSetup->removeAttribute($entityTypeId, 'speurtocht_attachment');
karick
fonte
0

Bem, todo mundo compartilha sua experiência, então eu tenho que adicionar a minha, talvez isso ajude alguém :)

Migro os dados do Magento 1.9 para o Magento 2.3.4 com a ferramenta de migração de dados

No meu caso, estou enfrentando o mesmo erro e verifico todos os casos acima, mas nada pode ajudar no final. Percebi que não tenho conjuntos de atributos no meu banco de dados: /

Então eu instalo o novo Magento porque não consigo encontrar o banco de dados Magento: / e pego o atributo padrão define valores e insiro na minha tabela de atributos :)

INSERT INTO `eav_attribute_set` (`attribute_set_id`, `entity_type_id`, `attribute_set_name`, `sort_order`) VALUES
(1, 1, 'Default', 2),
(2, 2, 'Default', 2),
(3, 3, 'Default', 1),
(4, 4, 'Default', 1),
(5, 5, 'Default', 1),
(6, 6, 'Default', 1),
(7, 7, 'Default', 1),
(8, 8, 'Default', 1);

Depois disso, meu produto Magento 2.3.4 adiciona um novo produto e edita o produto funcionará corretamente :)

Como verifico esse erro Primeiro, quando clico em editar e adiciono, recebo apenas 500 erros, mas depois de descomentar a linha em app / bootstrap.php, vejo um erro.

ini_set('display_errors', 1);
Zaheer Ahmad
fonte