laravel 데이터베이스 사무 롤백

배경: 최근에 Laravel-5.4를 사용하여 프로젝트 개발을 진행할 때 관련 모델의 데이터 조작과 관련되어 사무로 굴러갈 생각을 했습니다.중간에 데이터 인용과 이상한 포획이 관련되어 있다.
데이터베이스 사무 롤백은 두 가지 방식이 있는데 그것이 바로 자동 롤백, 수동 롤백이다.
예를 들면 다음과 같습니다.
자동 롤백
    function(Request $request){      
    DB::transaction(function () use ($request) {
         try {
           $admin = Admin::create(['name' => $request->name, 'password' => encrypt($request->password), 'email' => $request->email]);
         $admin->roles()->attach($request->role_id);
         //    $admin->roles()->attach('sd');// ,commit 
         return 'success';
       } catch (\Exception $exception) {
         return $exception->getMessage();
       }
        });
    }

use 인용 요청 데이터 $request를 사용해야 합니다.그렇지 않으면 "Undefined variable:request"오류가 발생합니다.
수동 롤백
    function(Request $request){
        DB::beginTransaction();
        try {
            $admin = Admin::create(['name' => $request->name, 'password' => encrypt($request->password), 'email' => $request->email]);
            $admin->roles()->attach($request->role_id);        
            DB::commit();
            return 'success';
        } catch (\Exception $exception) {
            DB::rollBack();
            return $exception->getMessage();
        }
    }

좋은 웹페이지 즐겨찾기