2

我正在使用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

当我尝试以下代码来调试文件时:

print_r($newImages);
die;

然后我得到了以下数据

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
)

我的东西数组键是错误的,你能给出解决这个问题的解决方案吗

4

1 回答 1

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']];
        }

为了:

        // 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'];
        }

它对我有用......图像现在被正确复制并在新产品上启用。

于 2013-01-17T12:59:13.770 回答