尝试复制产品时Magento错误

Poo*_*hra 2 magento magento-1.7

我正在使用magento 1.7.我有问题我不知道为什么会这样.我只是在后端打开产品进行编辑然后点击复制然后我得到了以下错误

Warning: Illegal string offset 'new_file' in D:\wamp\www\easyshop\app\code\core\Mage\Catalog\Model\Product\Attribute\Backend\Media.php on line 158
Run Code Online (Sandbox Code Playgroud)

当我尝试使用代码来调试文件时:

print_r($newImages);
die;
Run Code Online (Sandbox Code Playgroud)

然后我得到了以下数据

Array
(
    [/s/a/samsung_galaxy_s2_front1.jpg] => /s/a/samsung_galaxy_s2_front1_4.jpg
    [/s/g/sgs2p1.jpg] => /s/g/sgs2p1_4.jpg
    [/s/g/sgs2_11.jpg] => /s/g/sgs2_11_4.jpg
    [/s/g/sgs2-4386.jpg] => /s/g/sgs2-4386_4.jpg
)
Run Code Online (Sandbox Code Playgroud)

我的数据键错了可以请你解决这个问题的解决方案

小智 7

我在1.7.02遇到了同样的问题.我找到的解决方案是改变Magento(恕我直言)的错误代码.

在Mage_Catalog_Model_Product_Attribute_Backend_Media上我改变了你找到的行:

        // For duplicating we need copy original images.
        $duplicate = array();
        foreach ($value['images'] as &$image) {
            if (!isset($image['value_id'])) {
                continue;
            }
            $duplicate[$image['value_id']] = $this->_copyImage($image['file']);
            $newImages[$image['file']] = $duplicate[$image['value_id']];
        }
Run Code Online (Sandbox Code Playgroud)

对于:

        // For duplicating we need copy original images.
        $duplicate = array();
        foreach ($value['images'] as &$image) {
            if (!isset($image['value_id'])) {
                continue;
            }
            $duplicate[$image['value_id']] = $this->_copyImage($image['file']);
            $newImages[$image['file']] = array();
            $newImages[$image['file']]['new_file'] = $duplicate[$image['value_id']];
            $newImages[$image['file']]['label'] = $image['label'];
        }
Run Code Online (Sandbox Code Playgroud)

它为我做了诀窍......图像现在正在新产品上正确复制和启用.