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クラスになります。説明にあたって、クラス名を変更しました。

[gist id = “72b06387b6b3601eed1d” file = “IlluminateDB.php”]

クラスを利用するときは、クラスのオブジェクトを作って、getIlluminateConnection()メソッドを呼んで、コネクションを取得します。
コネクションから”getPdo()->beginTransaction()”を呼ぶと、トランザクションが開始されます。コミットしたいときは”getPdo()->commit()”、ロールバックしたいときは”getPdo()->rollback()”を呼べばOKです。

以下のような感じ。

[php]
$dbConn = (new \Runa_CCA\Model\IlluminateDB())->getIlluminateConnection();

try{
// Begin Transaction.
$dbConn->getPdo()->beginTransaction();

// Commit.
$dbConn->getPdo()->commit();

}catch(\Exception $e){

// Rollback.
$dbConn->getPdo()->rollback();

}
[/php]

以上、ご参考まで。

Author: rutoru

Find joy in everyday life. Be tolerant of others.

Leave a Reply

Your email address will not be published. Required fields are marked *