トランザクションの記述

以下のファンクション内にトランザクション処理を記載する。

DB::transaction(function () {

    DB::table('users')->update(['votes' => 1]);

    DB::table('posts')->delete();

});

 

ファンクション内で外部のパラメータを利用したい場合は以下のように記述する。

DB::transaction(function () use ($params) {

    DB::table('users')->update(['flag' => $params->flag]);

});

 

手動トランザクション

トランザクションの開始とコミット、ロールバックを任意の場所に記載する方法

DB::beginTransaction();

try {

    DB::table('users')->update(['votes' => 1]);

    DB::table('posts')->delete();

    DB::commit();

} catch (\PDOException $e){

    DB::rollBack();

}