laravel数据库事务回滚

       背景:近期使用Laravel-5.4进行项目开发时涉及到关联模型的数据操作,想到用事务回滚。中间涉及到数据引用及异常的捕获。

成都创新互联公司是一家专业提供获嘉企业网站建设,专注与网站建设、成都网站建设、HTML5建站、小程序制作等业务。10年已为获嘉众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。

        数据库事务回滚有两种方式:自动回滚、手动回滚。

举例如下:

        自动回滚

    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数据库事务回滚
文章出自:http://www.hxwzsj.com/article/gosjgj.html

其他资讯

Copyright © 2025 青羊区翔捷宏鑫字牌设计制作工作室(个体工商户) All Rights Reserved 蜀ICP备2025123194号-14
友情链接: 成都h5网站建设 梓潼网站设计 网站制作 网站建设 企业网站设计 响应式网站设计方案 响应式网站设计 定制网站制作 手机网站制作 企业网站制作 自适应网站建设 网站设计 网站建设公司 成都模版网站建设 企业网站设计 成都网站建设 古蔺网站建设 企业网站建设 成都网站建设公司 网站建设开发 广安网站设计 app网站建设