Question

Lorsque vous enregistrez votre objet multiple Object Model alors je veux proposer des transactions. Comment puis-je obtenir dans magento?

Toute personne S'il vous plaît Guide de moi?

Était-ce utile?

La solution

J'espère bien compris votre question.
Si vous souhaitez enregistrer X objets à la fois et faire reculer tous dans le cas où quelque chose va mal essayer.

$transaction = Mage::getModel('core/resource_transaction');
$transaction->addObject($obj1);
$transaction->addObject($obj2);
...
$transaction->addObject($objX);

$transaction->save();

appellera ->save() pour chaque objet ajouté à l'aide addObject mais tout sera fait dans une transaction.

Autres conseils

Regardez par exemple dans \Mage_Eav_Model_Entity_Abstract::saveAttribute

public function saveAttribute(Varien_Object $object, $attributeCode)
{
    // ...
    $adapter        = $this->_getWriteAdapter();
    // ...
    $adapter->beginTransaction();

    try {
        // ...
        $adapter->commit();
    } catch (Exception $e) {
        $adapter->rollback();
        throw $e;
    }

    return $this;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top