Как сохранить и удалить в одной транзакции

Мне нужно сохранить некоторые страницы cms и удалить других в одной транзакции.

Итак, как мне это сделать:

$page1->save(); $page2->delete(); 

Одна транзакция? Для справки, как $ page1, так и $ page2 поступают из Mage :: getModel ('cms / page'). Кроме того, я нашел отличный ответ здесь, который рассказывает мне, как сделать две транзакции в транзакции, но не как сделать и сохранить и удалить. Как это можно сделать?

Если вы должны сделать это за одну транзакцию, просто вызовите isDeleted(true) для тех элементов, которые вы хотите удалить:

 //Build out previous items, then for each which should be deleted... $page2->isDeleted(true); $transaction = Mage::getModel('core/resource_transaction'); $transaction->addObject($page1) $transaction->addObject($page2) //$transaction->addObject(...) etc... $transaction->save(); 

Думаю, я должен добавить объяснение (от Mage_Core_Model_Abstract::save() [ссылка] ):

 /** * Save object data * * @return Mage_Core_Model_Abstract */ public function save() { /** * Direct deleted items to delete method */ if ($this->isDeleted()) { return $this->delete(); } // ... }