Doctrine 1.2 与条令更新混淆。(1.2.4)
在我的单元测试(在symfony1.4上)中,我天真地试图编辑一条记录来进行测试。然而,在一些bug搜索之后,我发现我的脚本并没有达到我期望的效果。以下是令人不快的部分:Doctrine 1.2 与条令更新混淆。(1.2.4),doctrine-1.2,Doctrine 1.2,在我的单元测试(在symfony1.4上)中,我天真地试图编辑一条记录来进行测试。然而,在一些bug搜索之后,我发现我的脚本并没有达到我期望的效果。以下是令人不快的部分: $tp_vehicle = Doctrine_Core::getTable("tpVehicle")->find(10); $tp_vehicle->setLocationId(7); $tp_vehicle->save(); =>我的位置id没有任何变化!无论何时执行$tp\u vehicle->getL
$tp_vehicle = Doctrine_Core::getTable("tpVehicle")->find(10);
$tp_vehicle->setLocationId(7);
$tp_vehicle->save();
=>我的位置id没有任何变化!无论何时执行$tp\u vehicle->getLocationId()
,我都会得到原来的值,即8
所以我试着这样做
$tp_vehicle = Doctrine_Core::getTable("tpVehicle")->find(10);
$tp_vehicle->location_id = 7;
$tp_vehicle->save();
这样:
Doctrine_Core::getTable("tpVehicle")->createQuery("v")
->update()
->set("location_id", 7)
->where("id = ?", 10)
->execute();
没有运气!
最后,我可以用这段代码得到我想要的:
$tp_vehicle->setLocation(Doctrine_Core::getTable("tpLocation")->find(7));
这对我来说很尴尬,因为我真的不明白背后的逻辑。我有点直觉,我错过了一些与缓存和条令优化相关的东西,但是。。。我无法确切理解这一切是如何组合在一起的
有人能解释这一点吗?原则允许刷新记录,如中所述。具体如下:
$tp_vehicle->refresh();
$tp_vehicle->getLocationId();
另请参见关于堆栈溢出的帖子