我正在使用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
)
我的数组键错了你能解决这个问题吗
答案 0 :(得分: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'];
}
它为我做了诀窍......图像现在正在新产品上正确复制和启用。