laravel 事务处理

//開啟事務
            DB::beginTransaction();
            try {
                //賬號密碼同步到後台登錄表
                $user = new AppModelsUser;
                $user->name = $data->head_name;//負責人姓名
                $user->email = $data->head_email;//負責人郵箱
                $user->save();
                //提交事務
                DB::commit();
            } catch (Exception $e){
                //事務回滾
                DB::rollback();
            }
//開啟事務
            DB::beginTransaction();
            try {
                //賬號密碼同步到後台登錄表
                $user = new AppModelsUser;
                $user_data = [
                    'name' => $data->head_name,//負責人姓名
                    'email' => $data->head_email,//負責人郵箱
                    'updated_at' => date("Y-m-d H:i:s"),
                ];
                $user::where('businessid',$data->id)->update($user_data);
                //提交事務
                DB::commit();
            } catch (Exception $e){
                //事務回滾
                DB::rollback();
            }

 以上操作要手動開啟關閉事務

以下操作不用手動開啟關閉事務

你可以在 DB facade 上使用 transaction 方法来运行数据库事务中的一组操作。如果在事务 Closure 中发生了异常,事务将自动回滚。而如果 Closure 成功执行,事务将自动被提交。也就是说,使用数据库事务,你就不需要在数据库语句执行发生异常时手动回滚或提交。

DB::transaction(function () use($id,$login_pass){
Business::ID($id)->update(['login_pass' => $login_pass]);

});
原文地址:https://www.cnblogs.com/clubs/p/9809008.html