Laravelでのデータベーストランザクションの使用方法と例


まず、トランザクションを開始するには、DBファサードを使用します。以下のコードを使用してトランザクションを開始します。

use Illuminate\Support\Facades\DB;
DB::beginTransaction();

トランザクションを開始した後、データベース操作を行います。例えば、データの挿入、更新、削除などの操作があります。以下は、挿入操作の例です。

DB::table('users')->insert([
    'name' => 'John Doe',
    'email' => '[email protected]',
]);

トランザクション内でエラーが発生した場合、ロールバックして変更を取り消すことができます。次のように、エラーハンドリングとロールバックを行います。

try {
    // データベース操作
    DB::table('users')->insert([
        'name' => 'John Doe',
        'email' => '[email protected]',
    ]);
    // 他のデータベース操作
    DB::commit(); // すべての変更を確定
} catch (\Exception $e) {
    DB::rollback(); // 変更を取り消す
    throw $e;
}

最後に、トランザクションを終了します。コミットするかロールバックするかは、トランザクション内で発生したエラーの有無によって決まります。

DB::commit(); // 変更を確定

上記のコード例では、usersテーブルへの挿入操作を使用していますが、他のデータベース操作でも同様の手法が適用されます。

以上が、Laravelでデータベーストランザクションを使用する方法といくつかのコード例です。トランザクションを使用することで、データベースの整合性を維持し、エラーが発生した場合に変更をロールバックすることができます。