gpt4 book ai didi

Magento产品保存,如何检测产品数据是否被更改

转载 作者:行者123 更新时间:2023-12-01 11:35:52 26 4
gpt4 key购买 nike

在后台编辑产品时,我需要知道它的任何数据是否已更改?

$product->has DataChanges() 总是返回真,即使我没有修改任何字段。

最佳答案

为什么 $product->hasDataChanges() 总是返回 true 即使我没有修改任何字段。?

查看 Varien_Object 函数 setData 函数,似乎 hasDataChanges 始终设置为 true,即使从技术上讲数据没有变化。

public function setData($key, $value=null)
{
$this->_hasDataChanges = true;
if(is_array($key)) {
$this->_data = $key;
$this->_addFullNames();
} else {
$this->_data[$key] = $value;
if (isset($this->_syncFieldsMap[$key])) {
$fullFieldName = $this->_syncFieldsMap[$key];
$this->_data[$fullFieldName] = $value;
}
}
return $this;
}

解决方案:

当您有一个 Mage_Core_Model_Abstract 类型的模型时,您可以使用 public function getOrigData($key=null) 方法轻松获取保存时的先前数据(原始数据)。

getOrigData() 返回对象在初始化/填充时的数据。

模型初始化后,您可以更新该数据,getData() 将返回您当前在该对象中拥有的内容。

查看 Varien_Object (getOrigData,setOrigData),以便了解它的使用方式和原因。

关于Magento产品保存,如何检测产品数据是否被更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27264857/

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