Error de producto de migración de Magento: UiComponentFactory-> argumentosResolver ('created_by', NULL)

9

Estoy tratando de migrar mi Magento 1.9.3.4 a Magento 2.2.2 con la herramienta de migración de datos.

Lo hice y la tienda está trabajando en localhost; Tengo clientes, ventas, páginas estáticas y productos.

Recibo este error fatal cuando intenté editar un producto:

Error fatal: Error de tipo no capturado: el argumento 2 pasó a Magento \ Framework \ View \ Element \ UiComponentFactory :: argumentosResolver () debe ser del tipo de matriz, dado nulo, llamado en D: \ xampp \ htdocs \ magento2 \ vendor \ magento \ framework \ View \ Element \ UiComponentFactory.php en la línea 212 y definido en D: \ xampp \ htdocs \ magento2 \ vendor \ magento \ framework \ View \ Element \ UiComponentFactory.php: 164 Seguimiento de pila:

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

1 D: \ xampp \ htdocs \ magento2 \ vendor \ magento \ module-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-> preparar en D: \ xampp \ htdocs \ magento2 \ vendor \ magento \ framework \ View \ Element \ UiComponentFactory.php en la línea 164

Alguna sugerencia?

davincy
fuente
Has terminado de indexar>
Amit Bera
¿Has terminado de indexar? Espero que el atributo personalizado created_by 'sugiera eliminar este atributo y luego probarlo
Amit Bera

Respuestas:

13

Tuve exactamente el mismo error al crear un módulo personalizado. No estoy seguro de si esto lo resolverá para su caso, pero tal vez ayudará a iluminar lo que está sucediendo.

En mi diseño personalizado xml, tenía un uiComponent que aún no estaba definido. Expediente:

MyCompany / MyModule / view / adminhtml / layout / mycompany_mymodule_index_index.xml

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

La definición de este componente UI (o la eliminación de ese nodo uiComponent en mi diseño xml) resolvió el problema para mí.

Mark Rieth
fuente
4

Recibí dicho error después de la migración y uno de los atributos tenía una costumbre frontend_input. Veo en tu rastro de pila que el problema está en el created_bycampo. Tal vez debería establecer el frontend_inputcampo para ese campo texto algo similar.

Zsolti
fuente
4

En nuestro caso, este problema también estuvo relacionado con una migración de 1.9.4 a 2.2.7 y fue a un módulo de pre-pedido que agregó atributos al sitio Magento 1.

Tuvimos que actualizar la tabla eav_attributey modificar frontend_inputde 0a text.

Vea nuestra consulta de base de datos a continuación:

UPDATE  magento2.eav_attribute  SET  frontend_input ='text' WHERE  attribute_id = 186;
UPDATE  magento2.eav_attribute  SET  frontend_input ='text' WHERE  attribute_id = 187;
Maestro
fuente
Gracias, me ayuda a resolver el problema.
Navin Bhudiya
3

Asegúrese de que el <uiComponent name="registration_form" />nombre de uiComponent sea el mismo que el nombre del componente xml en MyCompany/MyModule/view/frontend/ui_component/registration_form.xml

Ledian Hymetllari
fuente
3

He migrado los datos de magento 1.9.3.7que magento 2.2.5el uso de la herramienta de migración de datos. Cuando hago clic en el botón Agregar producto a través del panel de administración, me muestra el mismo error. La forma en que lo resolví fue ir a Admin-> Tienda-> Conjunto de atributos . Y editó el conjunto de atributos Defaulty Migration_Default. Inicialmente, el Migration_Defaultatributo tenía los conjuntos de atributos pero Defaultestaba vacío. Agregué los atributos al Default Attribute Sety ejecuté el reindexcomando

sudo php bin/magento indexer:reindex

Asegúrese también de que el Schedule Design Updategrupo contiene los siguientes atributos:

  • diseño_personalizado

  • diseño_personalizado

  • diseño personalizado

  • custom_layout

Y funcionó para mí... ;)

Usman Yousaf
fuente
2

Puede verificar si el valor frontend_input del atributo es válido. Si tiene un campo personalizado, compruebe si el componente frontend está definido correctamente.

Babarus George
fuente
2

En mi caso encontré este atributo y cambié el texto al área de texto. Esto soluciona el problema.

Para hacerlo, necesita editar el atributo pero en modo de inspección.

Haga clic con el botón derecho del mouse en la etiqueta de 'Tipo de entrada de catálogo', baje para encontrar 'seleccionar opción' y elimine deshabilitado = 'deshabilitado'. Esto activará la opción de selección y puede cambiar a texto ahora y guardar.

deshabilitar atributo

BartZalas
fuente
2

En mi caso,

Encontré el atributo created_by en el "TIENDA -> [Atributos] Producto".

ingrese la descripción de la imagen aquí

Y cambió frontend_label a "any_sting ...",

ingrese la descripción de la imagen aquí

Debe ser tiene valor.

Esto soluciona el problema.

Lee Derting
fuente
1

En mi caso, tuve que eliminar el atributo que causa el problema. Por ejemplo, se trataba de un nombre de atributo de producto personalizado preorder. Eliminé el atributo y funcionó bien. Ninguna de las soluciones anteriores era aplicable para mí, ya que el atributo no estaba referenciado en ningún archivo xml.

Arvind07
fuente
1

Migré de magento 1.9.4 a 2.3.3 y obtuve el problema.

Tuvimos que actualizar la tabla eav_attribute y el campo frontend_input de 0 a "texto". Puede buscar el atributo con frontend_input= '0' Consulte nuestra consulta de base de datos a continuación:

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

Veo que el atributo con attribute_code es "preorder" y "preorderdescript"

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

¡Buena suerte!

SyLuu - Leric
fuente
¡Gracias! Esto funcionó para mí cuando actualicé de 1.8.1.0 a 2.3.4
Dan Norris
0

He estado luchando con el mismo problema después de la migración de Magento 1.7 a Magento 2.

Creo que tienes un problema con este atributo del producto: created_by

Primero necesita comprender el papel de ese atributo, ¿lo está utilizando en su proyecto Magento 1? Se puede definir con un módulo Magento 1.

En mi caso, tuve un problema con otro atributo personalizado: aitfiles_titley porque no lo necesito, simplemente lo eliminé de la base de datos de Magento 2.

delete from eav_attribute where attribute_code="aitfiles_title";

Si desea hacer lo mismo para su atributo:

delete from eav_attribute where attribute_code="created_by";

Funciona para mí y puedo acceder a la página del producto en el panel de administración de Magento 2.

Abdelkebir ELHARFALI
fuente
0

Puede acceder a sus conjuntos de atributos y eliminar el created_by del grupo del producto respectivo, luego reindexar la tienda. Resolvió mi problema.

Rafael Corrêa Gomes
fuente
0

Tengo un problema similar Para mí fue un problema con el atributo personalizado. En este caso es parte \ UiComponentFactory-> argumentosResolver ('created_by', NULL) y el atributo es created_by.

Lo tenía en la tabla eav_attribute pero se perdió en la lista de atributos del producto en admin. Así que lo acabo de eliminar programáticamente. Algo como eso:

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

Bueno, todos comparten su experiencia, así que tengo que agregar la mía, tal vez ayude a alguien :)

Migro los datos de Magento 1.9 a Magento 2.3.4 con la herramienta de migración de datos

En mi caso, me enfrento al mismo error y compruebo todos los casos anteriores, pero nada puede ayudar al final. Noté que no tengo conjuntos de atributos en mi base de datos: /

Así que instalo el nuevo Magento porque no puedo encontrar la base de datos de Magento: / y tomo los valores predeterminados de los conjuntos de atributos e los inserto en mi tabla 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);

después de esto, mi producto Magento 2.3.4 agregar nuevo producto y editar el producto funcionará correctamente :)

Cómo verifico este error Primero, cuando hago clic en editar y agregar, solo obtengo un error de 500 pero después de descomentar la línea en app / bootstrap.php veré un error.

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