laravel删除关联表信息提交事务的使用

/*
* 删除
*/
public function destroy($id)
{
// 开启事务
DB::beginTransaction();
$res = $this->users->del($id);
if(!$res){
// 用户删除不成功,则回滚
DB::rollBack();
return response()->json(['status' => 1, 'msg' => '用户表删除失败,请重试']);
}
// 继续查找有没有加班记录 注意此处取值必须使用first() 不可以使用get(); 判断的时候,判断j结果是不是null
$res = \App\Overtime::where('user_id',$id)->first();
if($res != null){
// 如果有请假,删除加班
$res2 = \App\Overtime::where('user_id',$id)->delete();
if(!$res2){
DB::rollBack();
return response()->json(['status' => 1, 'msg' => '加班信息删除失败,请重试']);
}

        }
//        继续找有没有请假记录
        $res = \App\Leave::where('user_id',$id)->first();
        if($res != null ){
            $res2 = \App\Leave::where('user_id',$id)->delete();
            if(!$res2){
                DB::rollBack();
                return response()->json(['status' => 1, 'msg' => '请假信息删除失败,请重试']);
            }
        }

//        继续找有没有薪资规则记录
        $res = \App\StaffSalarys::where('user_id',$id)->first();
        if($res != null){
            $res2 = \App\StaffSalarys::where('user_id',$id)->delete();
            if(!$res2){
                DB::rollBack();
                return response()->json(['status' => 1, 'msg' => '薪资规则信息删除失败,请重试']);
            }
        }
//        所有的判断都结束,走到这一步,提交事务
            DB::commit();
            return response()->json(['status' => 0, 'msg' => '删除成功']);
    }

// 继续查找有没有加班记录 注意此处取值必须使用first() 不可以使用get(); 判断的时候,判断j结果是不是null $res = \App\Overtime::where('user_id',$id)->first(); if($res != null){

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容