删除产品图像后保存产品错误- Magento版本.1.8.1.0.


Error saving product after removing product images - Magento ver. 1.8.1.0

我一直在尝试添加/编辑图像到magento产品。

我有这个代码

require_once("../test/app/Mage.php");
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
$simpleProduct = Mage::getModel('catalog/product');
$simpleProduct->load($_POST['id_in_magento']);
$mediaApi = Mage::getModel("catalog/product_attribute_media_api");
$mediaApiItems = $mediaApi->items($simpleProduct->getId());
foreach ($mediaApiItems as $item) {
    $datatemp = $mediaApi->remove($simpleProduct->getId(), $item['file']);
}
$simpleProduct->getResource()->save($simpleProduct);
foreach (unserialize($_POST['product_groups_images']) as $img) {
    $simpleProduct->addImageToMediaGallery($img, array('image', 'small_image', 'thumbnail'), false, false);
}
// ERROR on this line...
$simpleProduct->getResource()->save($simpleProduct);

这段代码可以工作,也可以不工作。

1)如果产品没有图像,则代码工作

2)如果产品之前有图像,它删除图像成功(我已经从产品前端链接确认图像被删除),但随后(尝试)添加图像,当试图保存它时发生错误。

这是完全错误

SQLSTATE[23000]: Integrity constraint violation: 1452不能添加或更新子行:a foreign key constraint fails (coszi_test . c .)catalog_product_entity_media_gallery_value,约束FK_CAT_PRD_ENTT_MDA_GLR_VAL_VAL_ID_CAT_PRD_ENTT_MDA_GLR_VAL_ID外键(value_id)引用catalog_product_enti)

像这样修改代码

 foreach ($mediaApiItems as $item) {
    $datatemp = $mediaApi->remove($simpleProduct->getId(), $item['file']);
}
$simpleProduct->getResource()->save($simpleProduct);

    foreach ($mediaApiItems as $item) {
    $datatemp = $mediaApi->remove($simpleProduct->getId(), $item['file']);
}

删除此保存

$simpleProduct->getResource()->save($simpleProduct);