est-il possible (comment) d'utiliser les transactions mysql et les rollbacks utilisant kohana ORM?kohana transaction avec orm
Répondre
Consultez le official forums. Il montre un exemple sur la façon d'utiliser des transactions avec KO3:
$db->query(NULL, 'TRANSACTION START');
// Do stuff
$db->query(NULL, 'COMMIT');
Comment faire avec la version 2, je ne sais pas. Je suis toujours nouveau à kohana moi-même, et apprendre Ko3 plutôt que 2. Mais je suppose que c'est assez similaire.
Les transactions SQL dans Kohana 3.x ne se font pas de la même manière que dans 2.x. Dans 3.x, la classe de base de données est fournie avec des méthodes de transaction:
$db->begin();
$db->commit();
$db->rollback();
Cela fonctionne également si vous utilisez des composants ORM. Il suffit d'initier la transaction avant que ORM enregistre, met à jour, a ou supprime.
En savoir plus dans ce post: http://dev.strategystar.net/2011/10/sql-transactions-with-kohana-3-x/
2.x, les transactions devaient être effectuées manuellement:
$this->db->query("START TRANSACTION")
Nice, c'est la voie à suivre. –
DB :: instance() -> début(), DB :: instance() -> commit(), DB :: instance() -> rollback() – Moe
J'ai créé un module Kohana qui rend l'utilisation beaucoup plus facile les transactions:
https://github.com/brazzy/kohana-transactional
Il ne, cependant, exigent au moins Kohana 3.1. Mais alors que vous venez d'ajouter
public $_transactional = true;
au contrôleur, et toutes les actions sont exécutées automatiquement dans une transaction, qui est annulée lorsque l'action échoue avec une exception.
simplement, je dois l'utiliser avec 2.4 – gpilotino
Je peux confirmer que cela fonctionne également avec 2.3.4 – Cocowalla