码迷,mamicode.com
首页 > 数据库 > 详细

laravel数据库事务回滚

时间:2017-09-04 14:47:56      阅读:418      评论:0      收藏:0      [点我收藏+]

标签: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();
        }
    }


laravel数据库事务回滚

标签:laravel 事务回滚 异常

原文地址:http://cc179.blog.51cto.com/8596347/1962398

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!