SlimフレームワークでLaravel’s Eloquent ORMを用いたデータベーストランザクション処理

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();

}

以上、ご参考まで。

Leave a Reply

Your email address will not be published.