请问Webman中是否默认开启事务了,如何关闭呢

bingo

我是小白,目前遇到一个不能复现的问题,想请教大家帮忙长个眼,谢谢

代码如下,业务就是注册新用户后续根据用户id访问问卷调查的答案,现在日志中插入没有问题,这个接口成功返回,后续的接口去数据库中却取不到数据,想了解下会不会因为后面什么代码逻辑导致事务回滚了?
我就是想了解下Webman中事务是自动开启还是手动触发呢

    public function loginByMobile(Request $request)
    {
        //此处省略了部分代码
        $member = $this->member->firstByMobile($member_mobile);
        //通过分享、名片进来的学员,建立与邀请人的关系
        $sale_user_id = 0;//分享人对应的顾问user_id

        if (!$member) {
            $new_member = true;
            $member = new Member();
            if ($sale_user_id) {//绑定顾问
                $member->user_id = $sale_user_id;
            } elseif ($sale_member_id) {//记录推销人member_id,建立分销关系
                $member->sale_member_id = $sale_member_id;
            }
            $member->member_origin = MemberEnum::SOURCE_MINIPROGRAM;
            $member->member_mobile = $member_mobile;
            $member->member_points = PointEnum::$points_type_amount[PointEnum::POINTS_TYPE_LOG];
            $member->member_create_at = time();
            $member->member_update_at = time();
            $result = $member->save(); // 此处保存会员信息,日志有打印,均正常,结果后续接口查询时查不到该会员信息
            if (!$result){
                  return $this->success(['code' => CodeEnum::LOGIN_SUCCESS_REG_FAILED]);
            }
        }
        //此处省略了部分代码
    }
27 1 0
1个回答

walkor 打赏

数据库组件和webman是独立的,webman不会自动开启事务。
你的问题可能是哪里开启了事务没提交导致的,

composer require webman/log 

装下webman/log,它会自动检测哪些请求没提交事物然后记录日志,并给前端返回错误。

  • 暂无评论
🔝