まず、トランザクションを開始するには、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でデータベーストランザクションを使用する方法といくつかのコード例です。トランザクションを使用することで、データベースの整合性を維持し、エラーが発生した場合に変更をロールバックすることができます。