Laravel - データベース - トランザクション


クラウディア 


1. 概要
2. トランザクション
3. 安全な操作
4. 参考サイト

1. 概要

 「Laravel」のデータベースアクセスには、もちろんトランザクション関係の仕組みも用意されているようです。

2. トランザクション

 下記のメソッドでトランザクションがかかるようです。

DB::beginTransaction();

3. 安全な操作

 安全に操作する方法として。

use Illuminate\Support\Facades\DB;

DB::transaction(function ()
{
    DB::table('users')->update(['active' => false]);

    DB::table('orders')->insert([
        'user_id' => 1,
        'amount' => 1000,
    ]);
});
 てな感じで、「DB::transaction」というもので囲んでしまうと。  「update」や「insert」で例外が発生した場合は、抜ける際に自動で「rollback()」するし。  正常終了した場合は、自動で「commit()」する。  という具合に、うまいことトランザクション制御ができるようです。

4. 参考サイト

 本ページは、「ChatGPT」くんを参考にさせていただきました。