Мне нужно сохранить некоторые страницы 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(); } // ... }