无法加载同一Doctrine_Record的多个版本

时间:2011-07-04 01:02:40

标签: caching doctrine save version doctrine-1.2

以下代码段演示了Doctrine的一些特殊行为。

$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 个答案:

答案 0 :(得分:1)

我最近问similar question,尽管我用关系来表达它。答案是,这取决于Doctrine中缓存的本质。学说将水合物保存在记忆中。您可以clone该对象,但只要您遵循任何关系,您就会回到原点。