Fehler beim Magento-Migrationsprodukt: UiComponentFactory-> argumentResolver ('created_by', NULL)

8

Ich versuche, mein Magento 1.9.3.4 mit dem Datenmigrationstool auf Magento 2.2.2 zu migrieren.

Ich habe es getan und der Laden arbeitet in localhost; Ich habe die Kunden, Verkäufe, statischen Seiten und Produkte.

Ich erhalte diesen schwerwiegenden Fehler, als ich versuchte, ein Produkt zu bearbeiten:

Schwerwiegender Fehler: Nicht erfasster TypeError: Argument 2, das an Magento \ Framework \ View \ Element \ UiComponentFactory :: argumentiert wurde \ View \ Element \ UiComponentFactory.php in Zeile 212 und definiert 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-> ArgumenteResolver ('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-> in D: \ xampp \ htdocs vorbereiten \ magento2 \ vendor \ magento \ framework \ View \ Element \ UiComponentFactory.php in Zeile 164

Ein Vorschlag?

Davincy
quelle
Haben Sie die Indizierung durchgeführt>
Amit Bera
Haben Sie die Indizierung durchgeführt? Ich hoffe, dass das benutzerdefinierte Attribut created_by 'vorschlägt, dieses Attribut zu löschen und es dann zu versuchen
Amit Bera

Antworten:

13

Ich hatte genau den gleichen Fehler beim Erstellen eines benutzerdefinierten Moduls. Ich bin mir nicht sicher, ob dies das Problem für Ihren Fall lösen wird, aber vielleicht hilft es, zu beleuchten, was los ist.

In meiner benutzerdefinierten Layout-XML hatte ich eine uiComponent, die noch nicht definiert war. Datei:

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

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

Das Definieren dieser UI-Komponente (oder das Entfernen dieses uiComponent-Knotens in meiner Layout-XML) hat das Problem für mich gelöst.

Mark Rieth
quelle
4

Ich habe nach der Migration einen solchen Fehler erhalten und eines der Attribute hatte einen benutzerdefinierten frontend_input. Ich sehe in Ihrer Stapelverfolgung, dass das Problem mit dem created_byFeld liegt. Vielleicht sollten Sie das frontend_inputfür dieses Feld auf textoder etwas Ähnliches setzen.

Zsolti
quelle
4

In unserem Fall betraf dieses Problem auch eine Migration von 1.9.4 auf 2.2.7 und ein Vorbestellungsmodul, das der Magento 1-Site Attribute hinzufügte.

Wir mussten die Tabelle aktualisieren eav_attributeund frontend_inputvon 0bis ändern text.

Siehe unsere Datenbankabfrage unten:

UPDATE  magento2.eav_attribute  SET  frontend_input ='text' WHERE  attribute_id = 186;
UPDATE  magento2.eav_attribute  SET  frontend_input ='text' WHERE  attribute_id = 187;
Meister
quelle
Danke, es hilft mir, das Problem zu lösen.
Navin Bhudiya
3

<uiComponent name="registration_form" />Stellen Sie sicher, dass der Name von uiComponent mit dem Namen der XML-Komponente unter übereinstimmt MyCompany/MyModule/view/frontend/ui_component/registration_form.xml

Ledian Hymetllari
quelle
3

Ich wanderte die Daten aus , magento 1.9.3.7um magento 2.2.5das Datenmigrations - Tool verwenden. Wenn ich im Admin-Bereich auf die Schaltfläche Produkt hinzufügen klicke, wird der gleiche Fehler angezeigt. Die Art und Weise, wie ich es beschlossen habe, war, zu Admin-> Store-> Attribute Set zu gehen . Und bearbeitet die Defaultund Migration_DefaultAttribute Set. Anfangs hatte das Migration_DefaultAttribut die Attributsätze, aber das Defaultwar leer. Ich habe die Attribute zu hinzugefügt Default Attribute Setund den reindexBefehl ausgeführt

sudo php bin/magento indexer:reindex

Stellen Sie außerdem sicher, dass die Schedule Design UpdateGruppe die folgenden Attribute enthält:

  • custom_design_from

  • custom_design_to

  • Maßgefertigtes Design

  • custom_layout

Und es hat bei mir funktioniert ...;)

Usman Yousaf
quelle
2

Sie können überprüfen, ob der frontend_input-Wert des Attributs gültig ist. Wenn Sie ein benutzerdefiniertes Feld haben, überprüfen Sie, ob die Frontend-Komponente korrekt definiert ist.

Babarus George
quelle
2

In meinem Fall habe ich dieses Attribut gefunden und Text in Textbereich geändert. Dies behebt das Problem.

Dazu benötigen Sie das Bearbeitungsattribut, jedoch im Inspektionsmodus.

Klicken Sie mit der rechten Maustaste auf die Bezeichnung "Katalogeingabetyp", suchen Sie nach "Auswahloption" und entfernen Sie "deaktiviert" = "deaktiviert". Dadurch wird die Optionsauswahl aktiviert, und Sie können jetzt zu Text wechseln und speichern.

Attribut deaktivieren

BartZalas
quelle
2

In meinem Fall,

Ich habe das Attribut created_by im Produkt "STORE -> [Attribute]] gefunden.

Geben Sie hier die Bildbeschreibung ein

Und frontend_label in "any_sting ..." geändert,

Geben Sie hier die Bildbeschreibung ein

Es sollte Wert haben.

Dies behebt das Problem.

Lee Derting
quelle
1

In meinem Fall musste ich das Attribut löschen, das das Problem verursacht. Zum Beispiel war es ein benutzerdefinierter Produktattributname preorder. Ich habe das Attribut gelöscht und es hat gut funktioniert. Keine der oben genannten Lösungen war für mich anwendbar, da das Attribut in keiner XML-Datei referenziert wurde.

Arvind07
quelle
0

Nach der Migration von Magento 1.7 auf Magento 2 habe ich mit demselben Problem zu kämpfen.

Ich denke, Sie haben ein Problem mit diesem Produktattribut: created_by

Zuerst müssen Sie die Rolle dieses Attributs verstehen. Verwenden Sie es in Ihrem Magento 1-Projekt? Es kann mit einem Magento 1-Modul definiert werden.

In meinem Fall hatte ich ein Problem mit einem anderen benutzerdefinierten Attribut: aitfiles_titleund da ich es nicht benötige, habe ich es einfach aus der Magento 2-Datenbank entfernt.

delete from eav_attribute where attribute_code="aitfiles_title";

Wenn Sie dasselbe für Ihr Attribut tun möchten:

delete from eav_attribute where attribute_code="created_by";

Es funktioniert für mich und ich kann auf die Produktseite im Magento 2-Administrationsbereich zugreifen.

Abdelkebir ELHARFALI
quelle
0

Sie können auf Ihre Attributgruppen zugreifen, das create_by aus der jeweiligen Produktgruppe entfernen und dann das Geschäft neu indizieren. Es hat mein Problem gelöst.

Rafael Corrêa Gomes
quelle
0

Ich habe ein ähnliches Problem. Für mich war es ein Problem mit dem benutzerdefinierten Attribut. In diesem Fall ist es Teil \ UiComponentFactory-> argumentResolver ('created_by', NULL) und das Attribut wird create_by.

Ich hatte es in der Tabelle eav_attribute, aber es wurde in der Liste der Produktattribute in admin übersehen. Also habe ich es gerade programmatisch entfernt. So ähnlich:

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

Nun, jeder teilt seine Erfahrungen, also muss ich meine hinzufügen, vielleicht hilft es jemandem :)

Ich migriere die Daten von Magento 1.9 nach Magento 2.3.4 mit dem Datenmigrationstool

In meinem Fall tritt der gleiche Fehler auf und ich überprüfe alle oben genannten Fälle, aber am Ende kann nichts helfen. Ich habe festgestellt, dass meine Datenbank keine Attributgruppen enthält: /

Also installiere ich das neue Magento, weil ich die Magento-Datenbank nicht finden kann: / und greife nach den Standardwerten für Attributmengen und füge sie in meine Attributtabelle ein :)

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

Danach wird mein Magento 2.3.4-Produkt ein neues Produkt hinzufügen und das Produkt bearbeiten wird ordnungsgemäß funktionieren :)

So überprüfe ich diesen Fehler Wenn ich zuerst auf Bearbeiten und Hinzufügen klicke, erhalte ich nur 500 Fehler, aber nachdem ich die Zeile in app / bootstrap.php auskommentiert habe, wird ein Fehler angezeigt.

ini_set('display_errors', 1);
Zaheer Ahmad
quelle
0

Ich bin von Magento 1.9.4 auf 2.3.3 migriert und habe das Problem bekommen.

Wir mussten die Tabelle eav_attribute und das Feld frontend_input von 0 auf "text" aktualisieren. Sie können nach Attributen mit frontend_input= '0' suchen. Siehe unsere Datenbankabfrage unten:

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

Ich sehe, dass Attribute mit attribute_code "preorder" und "preorderdescript" sind.

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

Viel Glück!

SyLuu - Leric
quelle