Magento移行製品エラー:UiComponentFactory-> argumentsResolver( 'created_by'、NULL)


9

Magento 1.9.3.4をdata-migration-toolを使用してMagento 2.2.2に移行しようとしています。

私はそれをしました、そして、店はlocalhostで働いています。私は顧客、販売、静的なページと製品を持っています。

1つの製品を編集しようとすると、次の致命的なエラーが表示されます。

致命的なエラー:キャッチされなかったTypeError:Magento \ Framework \ View \ Element \ UiComponentFactory :: argumentsResolver()に渡される引数2は、配列がnullである必要があり、D:\ xampp \ htdocs \ magento2 \ vendor \ magento \ frameworkで呼び出されます212行目の\ View \ Element \ UiComponentFactory.phpおよびD:\ xampp \ htdocs \ magento2 \ vendor \ magento \ framework \ View \ Element \ UiComponentFactory.php:164で定義:スタックトレース:

0 D:\ xampp \ htdocs \ magento2 \ vendor \ magento \ framework \ View \ Element \ UiComponentFactory.php(212):Magento \ Framework \ View \ Element \ UiComponentFactory-> argumentsResolver( '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'、 ''、配列)

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-> D:\ xampp \ htdocsの準備\ magento2 \ vendor \ magento \ framework \ View \ Element \ UiComponentFactory.php(164行目)

いくつかの提案?


インデックス作成を完了しました>
Amit Bera

インデックスを作成しましたか?created_by 'カスタム属性がこの属性を削除してからそれを試すことをお勧めします
Amit Bera

回答:


13

カスタムモジュールを作成するときに、これとまったく同じエラーが発生しました。これがあなたのケースのためにそれを解決するかどうかはわかりませんが、おそらく何が起こっているのかを明らかにするのに役立つでしょう。

私のカスタムレイアウトxmlには、まだ定義されていないuiComponentがありました。ファイル:

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

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

このUIコンポーネントを定義する(またはレイアウトxmlでそのuiComponentノードを削除する)と、問題が解決しました。


4

移行後にこのようなエラーが発生し、属性の1つにカスタムがありましたfrontend_input。スタックトレースで、問題がcreated_byフィールドにあることがわかります。たぶん、あなたはfrontend_inputそのフィールドのをに設定する必要がありますtext


4

私たちの場合、この問題は1.9.4から2.2.7への移行にも関連しており、Magento 1サイトに属性を追加した予約モジュールに関係していました。

テーブルを更新してからをにeav_attribute修正する必要frontend_inputがあり0ましたtext

以下のデータベースクエリを参照してください。

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

問題の解決にご協力いただきありがとうございます。
Navin Bhudiya

3

<uiComponent name="registration_form" />uiComponentの名前がxmlコンポーネント名と同じである ことを確認してくださいMyCompany/MyModule/view/frontend/ui_component/registration_form.xml


3

データ移行ツールmagento 1.9.3.7magento 2.2.5使用してからにデータを移行しました。管理パネルから製品の追加ボタンをクリックすると、同じエラーが表示されました。私が解決した方法は、Admin-> Store-> Attribute Setに行くことでした。DefaultおよびMigration_Default属性セットを編集しました。最初、Migration_Default属性には属性セットがありましたDefaultが、空でした。属性をに追加しDefault Attribute Setreindexコマンドを実行しました

sudo php bin/magento indexer:reindex

また、Schedule Design Updateグループに次の属性が含まれていることを確認してください。

  • custom_design_from

  • custom_design_to

  • custom_design

  • custom_layout

そしてそれは私のために働いた...;)


2

属性のfrontend_input値が有効な値であるかどうかを確認できます。カスタムフィールドがある場合は、フロントエンドコンポーネントが正しく定義されているかどうかを確認します。


2

私の場合、この属性を見つけて、テキストをテキスト領域に変更しました。これで問題が解決します。

これを行うには、属性を編集する必要がありますが、検査モードです。

「カタログ入力タイプ」のラベルを右クリックし、下に移動して「選択オプション」を見つけ、disabled = 'disabled'を削除します。これにより、オプション選択がアクティブになり、テキストに変更して保存できます。

属性を無効にする


2

私の場合、

「STORE-> [Attributes] Product」でcreated_by属性を見つけました。

ここに画像の説明を入力してください

そして、frontend_labelを「any_sting ...」に変更しました、

ここに画像の説明を入力してください

価値があるはずです。

これで問題が解決します。


1

私の場合、問題を引き起こしている属性を削除する必要がありました。たとえば、カスタム製品の属性名preorderでした。私は属性を削除し、それはうまくいきました。属性がどのxmlファイルでも参照されていないため、上記の解決策はどれも私には適用できませんでした。


1

magento 1.9.4から2.3.3に移行したところ、問題が発生しました。

テーブルeav_attributeとフィールドfrontend_inputを0から "text"に更新する必要がありました。frontend_input= '0'で属性を検索できます。以下のデータベースクエリを参照してください。

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

私が持つ属性を参照attribute_codeは「行きがけ」と「preorderdescript」です

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

幸運を!


ありがとうございました!1.8.1.0から2.3.4にアップグレードすると、これはうまくいきました
Dan Norris

0

Magento 1.7からMagento 2への移行後、同じ問題に悩んでいます。

この商品の属性に問題があると思います: created_by

最初にその属性の役割を理解する必要があります。それをMagento 1プロジェクトで使用していますか?Magento 1モジュールで定義できます。

私の場合、別のカスタム属性で問題がaitfiles_titleありました:必要ないので、Magento 2データベースから削除しました。

delete from eav_attribute where attribute_code="aitfiles_title";

属性に対して同じことをしたい場合:

delete from eav_attribute where attribute_code="created_by";

それは私のために働き、私はMagento 2管理パネルの製品ページにアクセスできます。


0

属性セットにアクセスして、それぞれの製品のグループからcreated_byを削除し、ストアのインデックスを再作成できます。それは私の問題を解決しました。


0

同様の問題があります。私にとってはカスタム属性の問題でした。この場合、それは\ UiComponentFactory-> argumentsResolver( 'created_by'、NULL)の一部であり、属性はcreated_byです。

eav_attributeテーブルにありましたが、adminの製品属性リストにありませんでした。だから私はそれをプログラム的に削除しました。そんな感じ:

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

0

まあ、誰もが彼らの経験を共有しているので、私は多分それが誰かを助けるために私のものを追加しなければなりません:)

データ移行ツールを使用して、Magento 1.9からMagento 2.3.4にデータを移行します

私の場合、同じエラーに直面していて、上記のすべてのケースをチェックしていますが、データベースに属性セットがないことに気づいた最後には何も役に立ちません:/

Magentoデータベースが見つからないため、新しいMagentoをインストールします:/で、デフォルトの属性セットの値を取得して、属性テーブルに挿入します:)

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

この後、私のMagento 2.3.4製品は新しい製品を追加し、製品を編集すると正しく動作します:)

このエラーを確認する方法 最初に[編集]をクリックして追加すると500エラーだけが表示されますが、コメントを解除すると、app / bootstrap.phpの行にエラーが表示されます。

ini_set('display_errors', 1);
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.