2017年2月17日金曜日

Laravel5.4でデータベーストランザクション(Database Transactions)

Laravel5.4で、データベーストランザクション(Database Transactions)です。DBファサードのトランザクションメソッドを使用することで、クエリビルダーとEloquent ORMのトランザクションも制御できるとのこと。

/app/Http/Controllers/BlogsController.php
use Illuminate\Support\Facades\DB;

  public function destroy($id)
  {
    DB::beginTransaction();
    try {
      $blog = Blog::find($id);
      $blog->comments()->detach();
      $blog->delete();
      DB::commit();
      $success = true;
    } catch (\Exception $e) {
      $success = false;
      DB::rollback();
    }

    if ($success) {
      // 成功した場合の処理

    }
  }

参考サイト
Database Transactions(Laravel)
Transaction with Eloquent Laravel 5(Stack Overflow)

0 件のコメント:

コメントを投稿