删除产品图片后保存产品时出错 - Magento ver。 1.8.1.0
Error saving product after removing product images - Magento ver. 1.8.1.0
我一直在尝试 add/edit 图片到 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) 如果产品之前有图片,它会成功删除图片(我已经从产品前端确认 link 图片已删除),但随后(尝试) 添加图像并在尝试保存时发生错误。
这是完全错误
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (coszi_test
.catalog_product_entity_media_gallery_value
, CONSTRAINT FK_CAT_PRD_ENTT_MDA_GLR_VAL_VAL_ID_CAT_PRD_ENTT_MDA_GLR_VAL_ID
FOREIGN KEY (value_id
) REFERENCES 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);
希望有用..
我一直在尝试 add/edit 图片到 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) 如果产品之前有图片,它会成功删除图片(我已经从产品前端确认 link 图片已删除),但随后(尝试) 添加图像并在尝试保存时发生错误。
这是完全错误
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (
coszi_test
.catalog_product_entity_media_gallery_value
, CONSTRAINTFK_CAT_PRD_ENTT_MDA_GLR_VAL_VAL_ID_CAT_PRD_ENTT_MDA_GLR_VAL_ID
FOREIGN KEY (value_id
) REFERENCEScatalog_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);
希望有用..