Kesalahan produk migrasi Magento: UiComponentFactory-> argumentsResolver ('Created_by', NULL)

9

Saya mencoba memigrasi Magento 1.9.3.4 ke Magento 2.2.2 dengan alat migrasi data.

Saya melakukannya dan toko bekerja di localhost; Saya memiliki pelanggan, penjualan, halaman statis dan produk.

Saya menerima kesalahan fatal ini ketika saya mencoba mengedit satu produk:

Kesalahan fatal: UnEught TypeError: Argumen 2 diteruskan ke Magento \ Framework \ View \ Element \ UiComponentFactory :: argumentsResolver () harus dari jenis array, null diberikan, disebut dalam D: \ xampp \ htdocs \ magento2 \ vendor \ magento \ framework \ View \ Element \ UiComponentFactory.php on line 212 dan didefinisikan dalam D: \ xampp \ htdocs \ magento2 \ vendor \ magento \ framework \ View \ Element \ UiComponentFactory.php: 164 Stack trace:

0 D: \ xampp \ htdocs \ magento2 \ vendor \ magento \ framework \ Lihat \ Elemen \ 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', '', Array )

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

3 D: \ xampp \ htdocs \ magento2 \ vendor \ magento \ framework \ Lihat \ Layout \ Generator \ UiComponent.php (156): Magento \ Framework \ View \ Layout \ Generator \ UiComponent-> siapkan di D: \ xampp \ htdocs \ magento2 \ vendor \ magento \ framework \ Lihat \ Elemen \ UiComponentFactory.php pada baris 164

Beberapa saran?

davincy
sumber
Sudahkah Anda melakukan pengindeksan>
Amit Bera
Sudahkah Anda melakukan pengindeksan? Saya harap atribut custom_by 'menyarankan untuk menghapus atribut ini dan kemudian mencobanya
Amit Bera

Jawaban:

13

Saya mengalami kesalahan yang sama persis saat membuat modul khusus. Tidak yakin apakah ini akan menyelesaikannya untuk kasus Anda, tetapi mungkin akan membantu untuk menerangi apa yang terjadi.

Di xml layout khusus saya, saya memiliki uiComponent yang belum didefinisikan. Mengajukan:

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

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

Mendefinisikan komponen UI ini (atau menghapus simpul uiComponent di layout xml saya) memecahkan masalah bagi saya.

Mark Rieth
sumber
4

Saya mendapat kesalahan seperti itu setelah migrasi dan salah satu atribut memiliki kebiasaan frontend_input. Saya melihat di jejak tumpukan Anda bahwa masalahnya adalah pada created_bybidang. Mungkin Anda harus mengatur frontend_inputbidang untuk itu textatau yang serupa.

Zsolti
sumber
4

Dalam kasus kami, masalah ini juga terkait dari Migrasi dari 1.9.4 ke 2.2.7 dan ke modul pra-pemesanan yang menambahkan atribut ke situs Magento 1.

Kami harus memperbarui tabel eav_attributedan mengubah frontend_inputdari 0menjadi text.

Lihat permintaan basis data kami di bawah ini:

UPDATE  magento2.eav_attribute  SET  frontend_input ='text' WHERE  attribute_id = 186;
UPDATE  magento2.eav_attribute  SET  frontend_input ='text' WHERE  attribute_id = 187;
menguasai
sumber
Terima kasih itu membantu saya untuk menyelesaikan masalah.
Navin Bhudiya
3

Pastikan <uiComponent name="registration_form" />nama uiComponent sama dengan nama komponen xml di bawah MyCompany/MyModule/view/frontend/ui_component/registration_form.xml

Ledian Hymetllari
sumber
3

Saya bermigrasi data dari magento 1.9.3.7ke magento 2.2.5menggunakan alat migrasi data. Ketika saya mengklik tombol tambah produk melalui panel admin, itu menunjukkan saya kesalahan yang sama. Cara saya mengatasinya adalah pergi ke Admin-> Store-> Set Atribut . Dan diedit Defaultdan Migration_DefaultSet Atribut. Awalnya Migration_DefaultAtribut memiliki set atribut tetapi Defaultkosong. Saya menambahkan atribut ke Default Attribute Setdan menjalankan reindexperintah

sudo php bin/magento indexer:reindex

Pastikan juga bahwa Schedule Design UpdateGrup Berisi atribut berikut:

  • custom_design_from

  • custom_design_to

  • desain custom_design

  • custom_layout

Dan itu berhasil untuk saya ...;)

Usman Yousaf
sumber
2

Anda dapat memeriksa apakah nilai frontend_input dari atribut itu valid. Jika Anda memiliki bidang khusus periksa apakah komponen frontend didefinisikan dengan benar.

Babarus George
sumber
2

Dalam kasus saya, saya menemukan atribut ini dan mengubah teks menjadi area teks. Ini memperbaiki masalah.

Untuk melakukan itu Anda perlu mengedit atribut tetapi dalam mode inspeksi.

Klik tombol kanan mouse pada Label 'Jenis masukan katalog', turun untuk menemukan 'pilih opsi' dan hapus dinonaktifkan = 'dinonaktifkan', Ini akan mengaktifkan opsi pilih dan Anda dapat mengubah ke teks sekarang dan menyimpan.

nonaktifkan atribut

BartZalas
sumber
2

Dalam hal ini,

Saya menemukan atribut Created_by pada "STORE -> [Atribut] Product".

masukkan deskripsi gambar di sini

Dan mengubah frontend_label menjadi "any_sting ...",

masukkan deskripsi gambar di sini

Itu harus memiliki nilai.

Ini memperbaiki masalah.

Lee Derting
sumber
1

Dalam kasus saya, saya harus menghapus atribut yang menyebabkan masalah. Misalnya itu adalah nama atribut produk khusus preorder. Saya menghapus atribut dan itu berfungsi dengan baik. Tidak ada solusi di atas yang berlaku untuk saya karena atribut tidak direferensikan dalam file xml apa pun.

Arvind07
sumber
1

Saya bermigrasi dari magento 1.9.4 ke 2.3.3 dan saya mendapatkan masalah ini.

Kami harus memperbarui tabel eav_attribute dan bidang frontend_input dari 0 menjadi "teks". Anda dapat mencari atribut dengan frontend_input= '0' Lihat permintaan basis data kami di bawah:

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

Saya melihat atribut dengan attribute_code adalah "preorder" dan "preorderdescript"

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

Semoga berhasil!

SyLuu - Leric
sumber
Terima kasih! Ini bekerja untuk saya ketika meningkatkan dari 1.8.1.0 ke 2.3.4
Dan Norris
0

Saya telah berjuang dengan masalah yang sama setelah migrasi dari Magento 1.7 ke Magento 2.

Saya pikir Anda memiliki masalah dengan atribut produk ini: created_by

Pertama, Anda perlu memahami peran atribut itu, apakah Anda menggunakannya dalam proyek Magento 1 Anda? itu dapat didefinisikan dengan modul Magento 1.

Dalam kasus saya, saya memiliki masalah dengan atribut khusus lain:, aitfiles_titledan karena saya tidak memerlukannya, saya baru saja menghapusnya dari database Magento 2.

delete from eav_attribute where attribute_code="aitfiles_title";

Jika Anda ingin melakukan hal yang sama untuk atribut Anda:

delete from eav_attribute where attribute_code="created_by";

Ini berfungsi untuk saya, dan saya dapat mengakses halaman produk di panel admin Magento 2.

Abdelkebir ELHARFALI
sumber
0

Anda dapat mengakses set atribut Anda dan menghapus Created_by dari grup produk masing-masing, kemudian mengindeks ulang toko. Itu memecahkan masalah saya.

Rafael Corrêa Gomes
sumber
0

Saya memiliki masalah serupa. Bagi saya itu masalah dengan atribut khusus. Dalam hal ini bagian \ UiComponentFactory-> argumentsResolver ('Created_by', NULL) dan atribut adalah create_by.

Saya memilikinya di tabel eav_attribute tetapi terlewatkan dalam daftar atribut produk di admin. Jadi saya baru saja menghapusnya secara program. Sesuatu seperti itu:

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

Baiklah, semua orang membagikan pengalaman mereka sehingga saya harus menambahkan pengalaman saya ke mungkin itu akan membantu seseorang :)

Saya memigrasikan data dari Magento 1.9 ke Magento 2.3.4 dengan alat migrasi data

Dalam kasus saya, saya menghadapi kesalahan yang sama dan memeriksa semua kasus di atas tetapi tidak ada yang dapat membantu pada akhirnya saya perhatikan saya tidak memiliki set atribut dalam database saya: /

Jadi saya menginstal Magento baru karena saya tidak dapat menemukan database Magento: / dan ambil nilai set atribut default dan masukkan dalam tabel atribut saya :)

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

setelah ini, produk Magento 2.3.4 saya menambah produk baru dan mengedit produk akan berfungsi dengan baik :)

Bagaimana saya memeriksa kesalahan ini Pertama ketika saya mengklik edit dan menambahkan saya hanya mendapatkan 500 kesalahan tetapi setelah saya batalkan komentar pada baris di app / bootstrap.php akan melihat kesalahan.

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