我正在將一些內容導入到嵌套樹模型中,並且我正在實現一個事務以確保每個對象都已保存;如果沒有,請將其從樹上移除。我正在使用Doctrine 1.1.6。在Doctrine中嵌套集回滾
// Start the transaction
$conn = Doctrine_Manager::connection();
try {
$conn->beginTransaction();
// add it as a child of the suburb
$object->getNode()->insertAsLastChildOf($parent);
...
// save related objects
...
$conn->commit();
} catch(Doctrine_Exception $e) {
$conn->rollback();
}
發生了什麼事,現在是,如果在事務塊的所有錯誤,所有的對象都將被刪除。但是樹不會返回到原來的位置。這意味着,我將在'lft'和'rgt'位置留出空格。那時樹會被破壞;並且修復數千個結果的樹可能非常昂貴。
我該怎麼做才能回滾insertAsLastChildOf()。我認爲這是教義本身應該做的事情,但我希望有人能給我一個提示。
謝謝!