gpt4 book ai didi

sql - Magento 自定义模块中的完整性约束违规

转载 作者:行者123 更新时间:2023-12-03 18:10:10 25 4
gpt4 key购买 nike

我有一个与 Integrity constraint violation creating Product in Magento 类似的问题(未回答)但我正在创建一个自定义观察者,该观察者 Hook 到 catalog_product_save_after 事件 - 基于本教程:http://fishpig.co.uk/blog/custom-tabs-magento-product-admin.html

但是,每当保存新产品时,我都会收到此错误:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '22-1' for key 'UNQ_CATALOGINVENTORY_STOCK_ITEM_PRODUCT_ID_STOCK_ID'

config.xml 如下所示:
<adminhtml>
<events>
<catalog_product_save_after>
<observers>
<a1web_save_product_data>
<type>singleton</type>
<class>metricimperial/observer</class>
<method>saveProductData</method>
</a1web_save_product_data>
</observers>
</catalog_product_save_after>
</events>
</adminhtml>

类的大纲是这样的:
<?php

class A1web_MetricImperialConverter_Model_Observer
{
/**
* Flag to stop observer executing more than once
*
* @var static bool
*/
static protected $_singletonFlag = false;

* @param Varien_Event_Observer $observer
*/
public function saveProductData(Varien_Event_Observer $observer)
{
if (!self::$_singletonFlag) {
self::$_singletonFlag = true;

$product = $observer->getEvent()->getProduct();

//Custom updates made to product object here

$product->save();
}
catch (Exception $e) {
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
}
}
}

/**
* Retrieve the product model
*
* @return Mage_Catalog_Model_Product $product
*/
public function getProduct()
{
return Mage::registry('product');
}

/**
* Shortcut to getRequest
*
*/
protected function _getRequest()
{
return Mage::app()->getRequest();
}
}

使用我添加的自定义产品数据正确保存了产品 - 保存产品后,后续保存同一产品时不会发生错误。仅在首次创建产品时才会发生错误。

提前致谢

最佳答案

而不是使用 $product->save()尝试使用资源模型,例如 $product->getResource()->save($product) .

原因是$product->save()将重新触发所有保存事件,因此运行保存 cataloginventory_stock 并引发错误的任何内容。

关于sql - Magento 自定义模块中的完整性约束违规,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14113116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com