Ошибка продукта переноса Magento: UiComponentFactory-> argumentsResolver ('creation_by', NULL)


9

Я пытаюсь перенести мой Magento 1.9.3.4 в Magento 2.2.2 с помощью инструмента для переноса данных.

Я сделал это, и магазин работает в localhost; У меня есть клиенты, продажи, статические страницы и продукты.

Я получаю эту фатальную ошибку при попытке изменить один продукт:

Неустранимая ошибка: Uncaught TypeError: Аргумент 2 передан в Magento \ Framework \ View \ Element \ UiComponentFactory :: argumentsResolver () должен иметь массив типа, заданный null, вызываемый в D: \ xampp \ htdocs \ magento2 \ vendor \ magento \ framework \ View \ Element \ UiComponentFactory.php в строке 212 и определяется в 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 ('made_by', NULL)

1 D: \ xampp \ htdocs \ magento2 \ vendor \ magento \ module-ui \ Component \ Form \ Field.php (84): Magento \ Framework \ View \ Element \ UiComponentFactory-> create ('creation_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-> подготовить в D: \ xampp \ htdocs \ magento2 \ vendor \ magento \ framework \ View \ Element \ UiComponentFactory.php в строке 164

Некоторые предложения?


Вы закончили индексацию>
Амит Бера

? Есть ˙U индексации Выполненной Я надеюсь , что CREATED_BY»пользовательского атрибута предлагает удалить этот атрибут , а затем попробовать
Amit Бер

Ответы:


13

У меня была точно такая же ошибка при создании пользовательского модуля. Не уверен, решит ли это это для вашего случая, но, возможно, это поможет осветить происходящее.

В моем пользовательском макете XML у меня был компонент uiComponent, который еще не был определен. Файл:

MyCompany / MyModule / просмотр / adminhtml / макет / mycompany_mymodule_index_index.xml

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

Определение этого компонента пользовательского интерфейса (или удаление этого узла uiComponent в моем макете XML) решило проблему для меня.


4

Я получил такую ​​ошибку после миграции, и один из атрибутов имел кастом 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;

Спасибо, это поможет мне решить проблему.
Навин Бхудия

3

Убедитесь, что <uiComponent name="registration_form" />имя uiComponent совпадает с именем компонента xml в MyCompany/MyModule/view/frontend/ui_component/registration_form.xml


3

Я мигрировал данные из magento 1.9.3.7с magento 2.2.5помощью средства переноса данных. Когда я нажимаю кнопку «Добавить продукт» через панель администратора, она показывает ту же ошибку. То, как я решил, было пойти в Admin-> Store-> Attribute Set . И отредактировал набор Defaultи Migration_Defaultатрибуты. Первоначально Migration_DefaultАтрибут имел наборы атрибутов, но Defaultбыл пуст. Я добавил атрибуты Default Attribute Setи выполнил reindexкоманду

sudo php bin/magento indexer:reindex

Также убедитесь, что Schedule Design Updateгруппа содержит следующие атрибуты:

  • custom_design_from

  • custom_design_to

  • индивидуальный дизайн

  • custom_layout

И это сработало для меня ...;)


2

Вы можете проверить, является ли значение атрибута frontend_input допустимым. Если у вас есть настраиваемое поле, проверьте, правильно ли определен компонент веб-интерфейса.


2

В моем случае я нашел этот атрибут и изменил текст в текстовую область. Это решит проблему.

Для этого вам нужно отредактировать атрибут, но в режиме проверки.

Нажмите правую кнопку мыши на ярлыке «Тип ввода каталога», спуститесь вниз, чтобы найти «выбрать вариант» и удалить disabled = «отключен», это активирует выбор опции, и вы можете перейти к тексту и сохранить.

отключить атрибут


2

В моем случае,

Я нашел атрибут made_by в «STORE -> [Attributes] Product».

введите описание изображения здесь

И изменил frontend_label на "any_sting ...",

введите описание изображения здесь

Это должно иметь значение.

Это решит проблему.


2

Я перешел с magento 1.9.4 на 2.3.3 и получил проблему.

Нам пришлось обновить таблицу eav_attribute и поле frontend_input с 0 на «текст». Вы можете искать атрибут с frontend_input= '0'. Смотрите наш запрос к базе данных ниже:

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

Я вижу атрибут с атрибутом_код "preorder" и "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
Дэн Норрис

1

В моем случае мне пришлось удалить атрибут, вызывающий проблему. Например, это были пользовательские имена атрибутов товара preorder. Я удалил атрибут, и он работал нормально. Ни одно из вышеперечисленных решений не было применимо для меня, так как атрибут не был указан ни в одном xml-файле.


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

Вы можете получить доступ к своим наборам атрибутов и удалить созданный_бай из группы соответствующего продукта, а затем переиндексировать магазин. Это решило мою проблему.


0

У меня похожая проблема. Для меня это была проблема с пользовательским атрибутом. В этом случае это part \ UiComponentFactory-> argumentsResolver ('made_by', NULL) и атрибут create_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, добавляющий новый продукт и редактирующий продукт, будет работать правильно :)

Как я проверяю эту ошибку Сначала, когда я нажимаю на edit и add, я получаю только 500 ошибок, но после того, как я раскомментирую строку в app / bootstrap.php, появится ошибка.

ini_set('display_errors', 1);
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.