Ben*_*ird 3 php transactions magento
我需要在一次交易中保存一些cms页面并删除其他页面.
那么,我该如何做到这一点:
$page1->save();
$page2->delete();
Run Code Online (Sandbox Code Playgroud)
单笔交易?作为参考,$ page1和$ page2都来自Mage :: getModel('cms/page').此外,我在这里找到了一个很好的答案,它告诉我如何在事务中执行两次保存,而不是如何同时执行保存和删除.怎么做到呢?
ben*_*rks 10
如果您必须在单个交易中执行此操作,只需调用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();
Run Code Online (Sandbox Code Playgroud)
以为我应该添加一个解释(来自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();
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
764 次 |
| 最近记录: |