WEBサイト制作・アプリ開発・システム開発・ブランディングデザイン制作に関するご相談はお気軽にご連絡ください。
構想段階からじっくりとヒアリングし、お客様の課題にあわせたアプローチ手法でお客様の“欲しかった”をカタチにしてご提案いたします。
Blog スタッフブログ
Laravel
システム開発
[Laravel]Laravelでのトランザクション処理の仕方
システム開発担当のTFです。
※Laravel8系統対応
やり方
- useでDBを宣言
- try-catchで記述する(エラーログ等のエラー処理の為)
- DB::beginTransaction();で開始
- DB::commit();で確定
- エラー時に、DB::rollBack();で、ロールバック
参考
Laravel 8.x データベース:準備
Laravelでトランザクションを張る2つの方法!
【Laravel】transactionメソッド
サンプル
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Test;
// DBの利用
use Illuminate\Support\Facades\DB;
class TestController extends Controller
{
public function update(Request $request, $id)
{
$test = Test::find($id);
try {
// トランザクション開始
DB::beginTransaction();
// DB処理
$test->update($request->all())->save();
// コミット
DB::commit();
} catch (Throwable $e) {
// ロールバック
DB::rollBack();
// ログ等エラー処理
}
}
}