我正在为 Magento 做一个模块,我的模块具有与 Magento 的 Crosssell 本机功能相同的功能。我有这个产品网格,用户选择一些复选框来将此产品与主要产品相关联。一切都好。
但是,我创建了一个自定义属性来保存此产品的 ID,并为“catalog_product_save_after”事件创建一个观察者:
<events>
<catalog_product_save_after>
<observers>
<brindeproduto_save_product_data>
<type>singleton</type>
<class>brindeproduto/observer</class>
<method>saveProductTabData</method>
</brindeproduto_save_product_data>
</observers>
</catalog_product_save_after>
</events>
在我的 saveProductTabData 上,我按请求的 ID 加载主要产品,并将所选产品的 IDS 放在我的自定义属性上,例如“1,2,3,4,5,6”。
好的,但是当我做 $product->save(); 我的浏览器负载无限,没有任何错误或异常。观察者的代码很简单。
$product = Mage::getModel('catalog/product')->load($product_id);
//some logical Specific information that is not in question now.
$product->save();
而已。
我试过调试保存功能并得到一些有趣的结果。在 Mage_Core_Model_Abstract 函数 save() 上,我在部分代码上放了一些骰子,然后全部搞定。此代码是 Magento 1.5 社区上功能保存第 330 行的一部分。
if ($dataCommited) {
$this->_afterSaveCommit();
}
return $this;
这是函数的最后一行。我在返回之前把死。
if ($dataCommited) {
$this->_afterSaveCommit();
}
die('test');
return $this;
我有骰子。但在返回之前仅此而已。有些人知道发生了什么?就这样耽误了5个小时。任何帮助将不胜感激。