2011-09-02 64 views
7

IN Magento Come posso inserire dati in più tabelle in una singola transazione e rollback se c'è qualche errore nel processo. ?? Posso scrivere query personalizzate e utilizzare le transazioni, ma preferirei farlo con i metodi Magento.Magento Database Transaction

risposta

6

Puoi provare Mage :: getModel ('core/resource_transaction'). La documentazione per esso come è here.

Ma probabilmente più utile, ecco un example di utilizzarlo per creare una fattura da un ordine.

+0

Grazie, ho capito. – sushantsahay

+2

Il contenuto del collegamento di esempio non è correlato alla risposta – gSorry

27

La risposta accettata va bene se ciò che si tenta di fare è salvare il modello. Ciò ti consentirà di concatenare qualsiasi numero con il rollback.

Se, tuttavia, si eseguono altre azioni che potrebbero innescare roll-back o sono rotolamento indietro se stessi, allora si desidera utilizzare qualcosa di più basso livello:

$connection = Mage::getSingleton('core/resource')->getConnection('core_write'); 
try { 
    $connection->beginTransaction(); 

    // Make saves and other actions that affect the database 

    $connection->commit(); 
} catch (Exception $e) { 
    $connection->rollback(); 
} 

è anche possibile ottenere il collegamento da un modello, ma potrebbe non esserlo.

Problemi correlati