我正在执行这段代码:
$model1 = Mage::getModel('enterprise_targetrule/index')->load(5511);
var_dump($model1);
$model2 = Mage::getModel('enterprise_targetrule/index')->
load(5511)->
setFlag('0')->
save();
var_dump($model2);
$model3 = Mage::getModel('enterprise_targetrule/index')->load(5511);
var_dump($model3);
die();
var_dump 调用的输出正是我所期望的:$_data[flag]
对于 1 是 1 ,对于and是$model1
0,对于$model2
and是 1 ,对于 $model3 是 0。$model3
$_origData[flag]
$model1
$model2
到目前为止,一切看起来都完全正确。但是,当我(在运行此代码后立即)select * from enterprise_targetrule_index
在我的数据库上执行时,我得到了以下结果:
mysql> select * from enterprise_targetrule_index;
+-----------+----------+-------------------+---------+------+
| entity_id | store_id | customer_group_id | type_id | flag |
+-----------+----------+-------------------+---------+------+
| 5511 | 7 | 0 | 1 | 1 |
为什么?
为什么flag没有更新?模型正确,所有字段正确,保存和加载调用都成功并返回完美结果,但数据库没有更新!就像我 save() 的更改没有被写入,但仍然可以以某种方式加载,至少在该脚本中。这里发生了什么?这个模型有什么特别之处,使它无法保存?