刪除我需要保存一些CMS頁面和刪除他人在單個事務。如何保存在同一個事務
那麼,怎樣才能讓我這個:
$page1->save();
$page2->delete();
一個單一的交易?作爲參考,這兩個$第1頁和第二頁$來自法師:: getModel(「CMS /頁」)。另外,我發現一個很好的答案here,告訴我怎麼做兩個交易撲救,但不知道如何做到既保存和刪除。如何做呢?
刪除我需要保存一些CMS頁面和刪除他人在單個事務。如何保存在同一個事務
那麼,怎樣才能讓我這個:
$page1->save();
$page2->delete();
一個單一的交易?作爲參考,這兩個$第1頁和第二頁$來自法師:: getModel(「CMS /頁」)。另外,我發現一個很好的答案here,告訴我怎麼做兩個交易撲救,但不知道如何做到既保存和刪除。如何做呢?
如果必須這樣做在一個單一的交易,只是呼籲那些要被刪除的項目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()
[link]):
/**
* Save object data
*
* @return Mage_Core_Model_Abstract
*/
public function save()
{
/**
* Direct deleted items to delete method
*/
if ($this->isDeleted()) {
return $this->delete();
}
// ...
}
夢幻般的答案! +1 –
神奇的框架和ORM! :-) – benmarks
注意別人:只是想更加明顯([中質疑艾倫風暴的回答關於'核心/ resource_transaction'鏈接] http://stackoverflow.com/questions/4878634/magento-catching-exceptions-and -滾回數據庫事務) – benmarks