2011-07-04 68 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"; 

這是怎麼回事?

有沒有辦法在執行保存之前加載記錄的舊版本?看起來,教義正在某處緩存某些東西 - 究竟是什麼,以及如何關閉它! (至少暫時)

回答

1

最近我問了一個similar question,儘管我用關係的話來說了一下。但答案是,這歸結於教義中緩存的性質。教義是保持水分的記憶。你可以clone這個對象,但只要你遵循任何關係,你就會回到原點。

相關問題