laravel设置mysql事务级别_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();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值