Lỗi sản phẩm di chuyển Magento: UiComponentFactory-> argumentResolver ('created_by', NULL)


8

Tôi đang cố gắng di chuyển Magento 1.9.3.4 sang Magento 2.2.2 bằng công cụ di chuyển dữ liệu.

Tôi đã làm điều đó và cửa hàng đang làm việc trong localhost; Tôi có khách hàng, bán hàng, trang tĩnh và sản phẩm.

Tôi nhận được lỗi nghiêm trọng này khi tôi cố gắng chỉnh sửa một sản phẩm:

Lỗi nghiêm trọng: Uncaught TypeError: Đối số 2 được chuyển cho Magento \ Framework \ View \ Element \ UiComponentFactory :: argumentResolver () phải thuộc mảng loại, null được cung cấp, được gọi trong D: \ xampp \ htdocs \ magento2 \ View \ Element \ UiComponentFactory.php trên dòng 212 và được xác định trong D: \ xampp \ htdocs \ magento2 \ eller \ magento \ framework \ View \ Element \ UiComponentFactory.php: 164 Dấu vết ngăn xếp:

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

1 D: \ xampp \ htdocs \ magento2 \ eller \ magento \ module-ui \ Element \ Form \ Field.php (84): Magento \ Framework \ View \ Element \ UiComponentFactory-> tạo ('created_by', '', Array )

2 D: \ xampp \ htdocs \ magento2 \ eller \ magento \ framework \ View \ Layout \ Generator \ UiComponent.php (159): Magento \ Ui \ Thành phần \ Form \ Field-> chuẩn bị ()

3 D: \ xampp \ htdocs \ magento2 \ eller \ magento \ framework \ View \ Layout \ Generator \ UiComponent.php (156): Magento \ Framework \ View \ Layout \ Generator \ UiComponent-> chuẩn bị trong D: \ xampp \ htdocs \ magento2 \ eller \ magento \ framework \ View \ Element \ UiComponentFactory.php trên dòng 164

Một số gợi ý?


Bạn đã thực hiện lập chỉ mục>
Amit Bera

Bạn đã lập chỉ mục chưa? Tôi hy vọng rằng thuộc tính tùy chỉnh created_by 'đề nghị xóa thuộc tính này và sau đó thử nó
Amit Bera

Câu trả lời:


13

Tôi đã có chính xác lỗi này khi tạo một mô-đun tùy chỉnh. Không chắc chắn nếu điều này sẽ giải quyết nó cho trường hợp của bạn, nhưng có lẽ nó sẽ giúp làm sáng tỏ những gì đang xảy ra.

Trong xml bố trí tùy chỉnh của tôi, tôi đã có một uiComponent chưa được xác định. Tập tin:

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

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

Việc xác định thành phần UI này (hoặc loại bỏ nút uiComponent trong bố cục xml của tôi) đã giải quyết vấn đề cho tôi.


4

Tôi đã gặp một lỗi như vậy sau khi di chuyển và một trong các thuộc tính có một tùy chỉnh frontend_input. Tôi thấy trong ngăn xếp của bạn theo dõi rằng vấn đề là với created_bytrường. Có lẽ bạn nên đặt frontend_inputtrường cho texthoặc một cái gì đó tương tự.


4

Trong trường hợp của chúng tôi, vấn đề này cũng liên quan đến Di chuyển từ 1.9.4 đến 2.2.7 và đó là mô-đun đặt hàng trước đã thêm thuộc tính vào trang web Magento 1.

Chúng tôi phải cập nhật bảng eav_attributevà sửa đổi frontend_inputtừ 0tới text.

Xem truy vấn cơ sở dữ liệu của chúng tôi dưới đây:

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

Cảm ơn nó giúp tôi giải quyết vấn đề.
Navin Bhudiya

3

Hãy chắc chắn rằng <uiComponent name="registration_form" />tên của uiComponent giống với tên thành phần xml bên dưới MyCompany/MyModule/view/frontend/ui_component/registration_form.xml


3

Tôi đã di chuyển dữ liệu từ magento 1.9.3.7sang magento 2.2.5sử dụng công cụ di chuyển dữ liệu. Khi tôi nhấp vào nút thêm sản phẩm thông qua bảng quản trị, nó cho tôi thấy lỗi tương tự. Cách tôi giải quyết là vào Quản trị-> Cửa hàng-> Bộ thuộc tính . Và chỉnh sửa Defaultvà các Migration_Defaultthuộc tính Set. Ban đầu Migration_DefaultThuộc tính có các bộ thuộc tính nhưng Defaulttrống. Tôi đã thêm các thuộc tính cho Default Attribute Setvà thực hiện reindexlệnh

sudo php bin/magento indexer:reindex

Đồng thời đảm bảo rằng Schedule Design UpdateNhóm Chứa các thuộc tính sau:

  • custom_design_from

  • custom_design_to

  • custom_design

  • bố cục tùy chỉnh

Và nó làm việc cho tôi ...;)


2

Bạn có thể kiểm tra xem giá trị frontend_input của thuộc tính có hợp lệ không. Nếu bạn có kiểm tra trường tùy chỉnh nếu thành phần frontend được xác định chính xác.


2

Trong trường hợp của tôi, tôi tìm thấy thuộc tính này và thay đổi văn bản thành vùng văn bản. Điều này khắc phục vấn đề.

Để làm điều đó bạn cần chỉnh sửa thuộc tính nhưng trong chế độ kiểm tra.

Nhấp chuột phải vào Nhãn của 'Loại đầu vào danh mục', đi xuống để tìm 'tùy chọn chọn' và xóa bị vô hiệu hóa = 'bị vô hiệu hóa', Điều này sẽ kích hoạt tùy chọn chọn và bạn có thể thay đổi thành văn bản ngay bây giờ và lưu.

vô hiệu hóa thuộc tính


2

Trong trường hợp của tôi,

Tôi đã tìm thấy thuộc tính created_by trên "STORE -> [Attribution] Product".

nhập mô tả hình ảnh ở đây

Và đã thay đổi frontend_label thành "any_sting ...",

nhập mô tả hình ảnh ở đây

Nó nên có giá trị.

Điều này khắc phục vấn đề.


1

Trong trường hợp của tôi, tôi đã phải xóa thuộc tính gây ra vấn đề. Ví dụ, đó là một tên thuộc tính sản phẩm tùy chỉnh preorder. Tôi đã xóa thuộc tính và nó hoạt động tốt. Không có giải pháp nào ở trên được áp dụng cho tôi vì thuộc tính không được tham chiếu trong bất kỳ tệp xml nào.


0

Tôi đã phải vật lộn với vấn đề tương tự sau khi chuyển từ Magento 1.7 sang Magento 2.

Tôi nghĩ bạn có vấn đề với thuộc tính sản phẩm này: created_by

Trước tiên bạn cần hiểu vai trò của thuộc tính đó, bạn có đang sử dụng nó trong dự án Magento 1 của bạn không? nó có thể được định nghĩa với mô-đun Magento 1.

Trong trường hợp của tôi, tôi gặp vấn đề với một thuộc tính tùy chỉnh khác: aitfiles_titlevà vì tôi không cần nó nên tôi đã xóa nó khỏi cơ sở dữ liệu Magento 2.

delete from eav_attribute where attribute_code="aitfiles_title";

Nếu bạn muốn làm tương tự cho thuộc tính của bạn:

delete from eav_attribute where attribute_code="created_by";

Nó hoạt động với tôi và tôi có thể truy cập trang sản phẩm trên bảng quản trị Magento 2.


0

Bạn có thể truy cập các tập thuộc tính của mình và xóa created_by khỏi nhóm sản phẩm tương ứng, sau đó giới thiệu lại cửa hàng. Nó giải quyết vấn đề của tôi.


0

Tôi có vấn đề tương tự. Đối với tôi đó là vấn đề với thuộc tính tùy chỉnh. Trong trường hợp này, đó là một phần \ UiComponentFactory-> argumentResolver ('created_by', NULL) và thuộc tính được created_by.

Tôi đã có nó trong bảng eav_attribution nhưng nó đã bị bỏ lỡ trong danh sách thuộc tính sản phẩm trong quản trị viên. Vì vậy, tôi đã loại bỏ nó theo chương trình. Một cái gì đó như thế:

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

0

Chà, mọi người chia sẻ kinh nghiệm của họ nên tôi phải thêm tôi để có thể nó sẽ giúp được ai đó :)

Tôi di chuyển dữ liệu từ Magento 1.9 sang Magento 2.3.4 bằng công cụ di chuyển dữ liệu

Trong trường hợp của tôi, tôi đang đối mặt với cùng một lỗi và kiểm tra tất cả các trường hợp trên nhưng cuối cùng tôi không nhận được gì. Tôi nhận thấy tôi không có bộ thuộc tính trong cơ sở dữ liệu của mình: /

Vì vậy, tôi cài đặt Magento mới vì tôi không thể tìm thấy cơ sở dữ liệu Magento: / và lấy các thuộc tính mặc định đặt các giá trị và chèn vào bảng thuộc tính của tôi :)

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

sau này, sản phẩm Magento 2.3.4 của tôi thêm sản phẩm mới và chỉnh sửa sản phẩm sẽ hoạt động bình thường :)

Làm cách nào để kiểm tra lỗi này Đầu tiên khi tôi nhấp vào chỉnh sửa và thêm Tôi chỉ nhận được 500 lỗi nhưng sau khi tôi không chú ý thì dòng trong app / bootstrap.php sẽ gặp lỗi.

ini_set('display_errors', 1);

0

Tôi đã di chuyển từ magento 1.9.4 đến 2.3.3 và tôi đã gặp vấn đề.

Chúng tôi đã phải cập nhật bảng eav_attribution và trường frontend_input từ 0 thành "văn bản". Bạn có thể tìm kiếm thuộc tính với frontend_input= '0' Xem truy vấn cơ sở dữ liệu của chúng tôi dưới đây:

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

Tôi thấy thuộc tính với property_code là "preorder" và "preorderdescript"

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

Chúc may mắn!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.