私はこのコードを実行しています:
$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]
は$model1
、まさに私が期待するものです。$model2
$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 |
なぜ?
フラグが更新されないのはなぜですか? モデルは正しく、すべてのフィールドは正しく、保存と読み込みの呼び出しはすべて成功し、完璧な結果が返されますが、データベースは更新されません! I save() の変更は書き込まれませんが、少なくともそのスクリプト内では、何らかの形でまだ読み込まれているようです。ここで何が起こっているのですか?このモデルの何が特別で、保存できないのですか?