Errore prodotto migrazione Magento: UiComponentFactory-> argumentResolver ('Created_by', NULL)


9

Sto provando a migrare il mio Magento 1.9.3.4 a Magento 2.2.2 con lo strumento di migrazione dei dati.

L'ho fatto e il negozio funziona in localhost; Ho clienti, vendite, pagine statiche e prodotti.

Ricevo questo errore fatale quando ho provato a modificare un prodotto:

Errore irreversibile: errore di tipo non rilevato: argomento 2 passato a Magento \ Framework \ View \ Element \ UiComponentFactory :: ArgomentiResolver () deve essere di tipo array, null specificato, chiamato in D: \ xampp \ htdocs \ magento2 \ vendor \ magento \ framework \ View \ Element \ UiComponentFactory.php sulla riga 212 e definito in D: \ xampp \ htdocs \ magento2 \ vendor \ magento \ framework \ View \ Element \ UiComponentFactory.php: 164 Stack trace:

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 \ 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-> prepar ()

3 D: \ xampp \ htdocs \ magento2 \ vendor \ magento \ framework \ View \ Layout \ Generator \ UiComponent.php (156): Magento \ Framework \ View \ Layout \ Generator \ UiComponent-> prepara in D: \ xampp \ htdocs \ magento2 \ vendor \ magento \ framework \ View \ Element \ UiComponentFactory.php sulla riga 164

Qualche suggerimento?


Hai fatto l'indicizzazione>
Amit Bera

Hai eseguito l'indicizzazione? Spero che l'attributo personalizzato Created_by 'suggerisca di eliminare questo attributo e quindi provarlo
Amit Bera

Risposte:


13

Ho avuto esattamente lo stesso errore durante la creazione di un modulo personalizzato. Non sono sicuro se questo lo risolverà per il tuo caso, ma forse aiuterà a illuminare ciò che sta succedendo.

Nel mio xml di layout personalizzato, avevo un uiComponent che non era ancora stato definito. File:

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

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

Definire questo componente dell'interfaccia utente (o rimuovere quel nodo uiComponent nel mio layout xml) ha risolto il problema per me.


4

Ho ricevuto un errore simile dopo la migrazione e uno degli attributi aveva un'abitudine frontend_input. Vedo nella traccia dello stack che il problema riguarda il created_bycampo. Forse dovresti impostare frontend_inputquel campo su texto qualcosa di simile.


4

Nel nostro caso questo problema era anche correlato a una migrazione dalla 1.9.4 alla 2.2.7 ed era a un modulo di preordine che aggiungeva attributi al sito Magento 1.

Abbiamo dovuto aggiornare la tabella eav_attributee modificare frontend_inputda 0a text.

Vedi la nostra query sul database di seguito:

UPDATE  magento2.eav_attribute  SET  frontend_input ='text' WHERE  attribute_id = 186;
UPDATE  magento2.eav_attribute  SET  frontend_input ='text' WHERE  attribute_id = 187;

Grazie mi aiuta a risolvere il problema.
Navin Bhudiya,

3

Assicurarsi che il <uiComponent name="registration_form" />nome di uiComponent sia uguale al nome del componente xml in MyCompany/MyModule/view/frontend/ui_component/registration_form.xml


3

Ho migrato i dati da magento 1.9.3.7a magento 2.2.5utilizzando lo strumento di migrazione dei dati. Quando faccio clic sul pulsante Aggiungi prodotto tramite il pannello di amministrazione, mi viene mostrato lo stesso errore. Il modo in cui l'ho risolto è stato andare su Admin-> Store-> Set di attributi . E modificato il set di attributi Defaulte Migration_Default. Inizialmente l' Migration_Defaultattributo aveva gli insiemi di attributi ma Defaultera vuoto. Ho aggiunto gli attributi a Default Attribute Seted eseguito il reindexcomando

sudo php bin/magento indexer:reindex

Assicurarsi inoltre che il Schedule Design Updategruppo contenga i seguenti attributi:

  • custom_design_from

  • custom_design_to

  • design personalizzato

  • custom_layout

E ha funzionato per me ...;)


2

Puoi verificare se il valore frontend_input dell'attributo è valido. Se si dispone di un campo personalizzato, verificare se il componente frontend è definito correttamente.


2

Nel mio caso ho trovato questo attributo e ho cambiato il testo in area di testo. Questo risolve il problema.

Per fare ciò è necessario modificare l'attributo ma in modalità ispezione.

Fai clic con il pulsante destro del mouse sull'etichetta di "Tipo input catalogo", scorri verso il basso per trovare "seleziona opzione" e rimuovi disabilitato = "disabilitato", questo attiverà la selezione delle opzioni e ora puoi passare al testo e salvare.

disabilita l'attributo


2

Nel mio caso,

Ho trovato l'attributo Created_by su "STORE -> [Attributes] Product".

inserisci qui la descrizione dell'immagine

E cambiato frontend_label in "any_sting ...",

inserisci qui la descrizione dell'immagine

Dovrebbe avere valore.

Questo risolve il problema.


1

Nel mio caso ho dovuto eliminare l'attributo che causa il problema. Ad esempio, era un nome di attributo del prodotto personalizzato preorder. Ho cancellato l'attributo e ha funzionato bene. Nessuna delle soluzioni di cui sopra era applicabile per me in quanto l'attributo non era referenziato in nessun file XML.


1

Sono migrato da Magento 1.9.4 a 2.3.3 e ho riscontrato il problema.

Abbiamo dovuto aggiornare la tabella eav_attribute e il campo frontend_input da 0 a "testo". Puoi cercare l'attributo con frontend_input= '0' Vedi la nostra query sul database qui sotto:

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

Vedo che gli attributi con attributo_codice sono "preordine" e "preordinedescript"

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

In bocca al lupo!


Grazie! Questo ha funzionato per me durante l'aggiornamento da 1.8.1.0 a 2.3.4
Dan Norris

0

Ho avuto problemi con lo stesso problema dopo la migrazione da Magento 1.7 a Magento 2.

Penso che tu abbia un problema con questo attributo del prodotto: created_by

Per prima cosa devi capire il ruolo di quell'attributo, lo stai usando nel tuo progetto Magento 1? può essere definito con un modulo Magento 1.

Nel mio caso ho avuto un problema con un altro attributo personalizzato: aitfiles_titlee poiché non ne ho bisogno l'ho rimosso dal database Magento 2.

delete from eav_attribute where attribute_code="aitfiles_title";

Se desideri fare lo stesso per il tuo attributo:

delete from eav_attribute where attribute_code="created_by";

Funziona per me e sono in grado di accedere alla pagina del prodotto sul pannello di amministrazione di Magento 2.


0

Puoi accedere ai tuoi set di attributi e rimuovere create_by dal rispettivo gruppo di prodotti, quindi reindicizzare il negozio. Ha risolto il mio problema.


0

Ho un problema simile. Per me è stato un problema con l'attributo personalizzato. In questo caso fa parte \ UiComponentFactory-> argumentResolver ('Created_by', NULL) e l'attributo viene creato_by.

Lo avevo nella tabella eav_attribute ma mancava nell'elenco degli attributi del prodotto in admin. Quindi l'ho appena rimosso programmaticamente. Qualcosa del genere:

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

0

Bene, tutti condividono la loro esperienza, quindi devo aggiungere la mia forse aiuterà qualcuno :)

Eseguo la migrazione dei dati da Magento 1.9 a Magento 2.3.4 con lo strumento di migrazione dei dati

Nel mio caso, sto riscontrando lo stesso errore e controllo tutti i casi precedenti, ma nulla può aiutare alla fine ho notato che non ho set di attributi nel mio database: /

Quindi installo il nuovo Magento perché non riesco a trovare il database Magento: / e afferro l'attributo predefinito imposta i valori e inserisco nella mia tabella degli attributi :)

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);

dopo questo, il mio prodotto Magento 2.3.4 aggiunge un nuovo prodotto e modifica il prodotto funzionerà correttamente :)

Come controllo questo errore Innanzitutto, quando faccio clic su Modifica e aggiungo, visualizzo solo 500 errori, ma dopo aver decommentato la riga in app / bootstrap.php vedrà un errore.

ini_set('display_errors', 1);
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.