#php #arrays #product #data-migration #magento-2.3
#php #массивы #продукт #данные-миграция #magento-2.3
Вопрос:
Каков средний аргумент типа array, задан null,
Ошибка:
Неустранимая ошибка: Неперехваченный TypeError: аргумент 3, переданный в MagentoFrameworkViewElementUiComponentFactory::mergeMetadataElement(), должен иметь тип array, задан null, вызывается в /var/www/html/giriusa/lib/internal/Magento/Framework/View/Element/UiComponentFactory.php в строке 384 и определен в /var/www/html/giriusa/lib/internal/Magento/Framework/View/Element/UiComponentFactory.php:337 Трассировка стека: #0 /var/www/html/giriusa/lib/internal/Magento/Framework/View/Element/UiComponentFactory.php (384): MagentoFrameworkViewElementUiComponentFactory->mergeMetadataElement(Array, ‘configurableExi…’, NULL, false) #1 /var/www/html/giriusa/lib/internal/Magento/Framework/View/Element/UiComponentFactory.php (412): MagentoFrameworkViewElementUiComponentFactory->mergeMetadataItem(массив, Array, false) #2 /var/www/html/giriusa/lib/internal/Magento/Framework/View/Element/UiComponentFactory.php (412): MagentoFrameworkViewElementUiComponentFactory->mergeMetadataItem(массив, Array, false) #3 / var/www/html/giriusa/lib/internal/Magento/Fram в /var/www/html/giriusa/lib/internal/Magento/Framework/View/Element/UiComponentFactory.php в строке 337
Путь: lib/internal/Magento/Framework/View/Element/UiComponentFactory.php
UiComponentFactory::mergeMetadataElement() должен иметь тип array, задан null
protected function mergeMetadataElement(array $bundleComponents, $name, array $data, $reverseMerge = false)
{
if (isset($bundleComponents[$name])) {
$bundleComponents[$name] = $reverseMerge
? array_replace_recursive($data, $bundleComponents[$name])
: array_replace_recursive($bundleComponents[$name], $data);
return [$bundleComponents, true];
} else {
foreach ($bundleComponents as amp;$childData) {
if (isset($childData['attributes']['class'])
amp;amp; is_a($childData['attributes']['class'], MagentoUiComponentContainer::class, true)
amp;amp; isset($childData['children']) amp;amp; is_array($childData['children'])
) {
list($childData['children'], $isMerged) = $this->mergeMetadataElement(
$childData['children'],
$name,
$data,
$reverseMerge
);
if ($isMerged) {
return [$bundleComponents, true];
}
}
}
}
return [$bundleComponents, false];
}
Примечание: После миграции с 1.9 получение вышеуказанной ошибки до того, как она заработает нормально.
Комментарии:
1. Это означает, что вы передаете
null
значение третьему параметру функции ($data
).2. Это основной файл Magento, до миграции ошибки нет, после миграции с 1.9.2.3 я столкнулся с ошибкой при добавлении нового продукта.