Comment fournir transaction Magento?
-
16-10-2019 - |
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?
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