SlimフレームワークでORマッパーLaravel’s Eloquent ORMを使う方法は「How to use Laravel’s Eloquent ORM with the Slim Framework」に書いてあります。
しかしながら、トランザクションの利用については書いてません。試行錯誤しました。NetBeansの補完機能に助けられつつ、実現できました。
以下のようなクラスを作ります。ちなみに、Runa-CCAではDBクラスになります。説明にあたって、クラス名を変更しました。
クラスを利用するときは、クラスのオブジェクトを作って、getIlluminateConnection()メソッドを呼んで、コネクションを取得します。
コネクションから”getPdo()->beginTransaction()”を呼ぶと、トランザクションが開始されます。コミットしたいときは”getPdo()->commit()”、ロールバックしたいときは”getPdo()->rollback()”を呼べばOKです。
以下のような感じ。
$dbConn = (new \Runa_CCA\Model\IlluminateDB())->getIlluminateConnection();
try{
// Begin Transaction.
$dbConn->getPdo()->beginTransaction();
// Commit.
$dbConn->getPdo()->commit();
}catch(\Exception $e){
// Rollback.
$dbConn->getPdo()->rollback();
}
以上、ご参考まで。
