2011-07-04 15 views
1

次のコードスニペットはDoctrineのいくつかの特殊な動作を示しています。同じDoctrine_Recordの複数バージョンの読み込みに問題があります

$user = Doctrine::getTable('User')->find(1); 
$user->name = 'Zoppy'; 

// This line prevents the subsequent $user->save() from working as expected 
$old_user = Doctrine::getTable('User')->find(1); 

$user->save(); 

// Does not print 'Zoppy' 
echo Doctrine::getTable('User')->find(1)->name . "\n"; 

ここでは何が起こっていますか?

保存を実行する前に古いバージョンのレコードを読み込む方法はありますか? Doctrineはどこかに何かをキャッシングしているようです。正確にはどういうものなのでしょうか? (少なくとも一時的に)

答えて

1

私は最近、similar questionという質問をしましたが、私は関係性について言いました。答えは、これはDoctrineのキャッシングの性質にあるということです。 Doctrineは水和物を記憶しています。オブジェクトはcloneですが、リレーションシップに従うとすぐに正方形に戻ります。

関連する問題