Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在同一事务中保存和删除_Php_Magento_Transactions - Fatal编程技术网

Php 如何在同一事务中保存和删除

Php 如何在同一事务中保存和删除,php,magento,transactions,Php,Magento,Transactions,我需要保存一些cms页面和删除其他在一个单一的交易 那么,我如何做到这一点: $page1->save(); $page2->delete(); 一笔交易?作为参考,$page1和$page2都来自Mage::getModel('cms/page')。此外,我还找到了一个很好的答案,告诉我如何在一个事务中进行两次保存,而不是如何同时进行保存和删除。如何做到这一点?如果您必须在单个事务中执行此操作,只需对您希望删除的项目调用isDeleted(true): //Build out p

我需要保存一些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();
我想我应该添加一个解释(来自):


其他人注意:只是想让事情变得更加明显
/**
 * Save object data
 *
 * @return Mage_Core_Model_Abstract
 */
public function save()
{
    /**
     * Direct deleted items to delete method
     */
    if ($this->isDeleted()) {
        return $this->delete();
    }
    // ...
}