Я импортирую некоторый контент в модель Nested Tree, и я реализую транзакцию, чтобы убедиться, что каждый объект был сохранен; а если нет, удалите его из дерева. Я использую 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(). Я думаю, что это то, что Доктрина должна делать сама по себе, но я надеюсь, что кто-то может дать мне подсказку.
спасибо!