0

私はこのコードを実行しています:

$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() の変更は書き込まれませんが、少なくともそのスクリプト内では、何らかの形でまだ読み込まれているようです。ここで何が起こっているのですか?このモデルの何が特別で、保存できないのですか?

4

2 に答える 2

0

$model2 = Mage::getModel('enterprise_targetrule/index')->load(5511);
$model2->setFlag('0');
$model2->save();
echo $model2->getFlag();

var_dump を使用すると、オブジェクト全体が表示されます。

于 2013-04-25T10:26:55.153 に答える