为同一订单创建多个记录

问题描述 投票:2回答:1

我正在使用Database Transaction作为终点,员工可以接受该订单后执行某些操作。我不希望将相同的订单分配给不同的员工。我使用了Database transaction,但问题是当员工同时接受订单时,多个员工被分配到相同的订单。示例代码如下:

try {
        $message = [
            "status_validation" => "Input status must have value assigned",
            "unique" => "Order is assigned to other driver"
        ];
        $this->validate($request, [
            "restaurant_id" => 'required|integer|min:1',
            "order_id" => 'required|integer|min:1|unique:driver_order,order_id',
            "status" => 'required|status_validation'
        ], $message);
    } catch (\Exception $ex) {
        return response()->json([
            "status" => "422",
            "message" => $ex->response->original
        ], 422);
    }
    try {

        DB::beginTransaction();
        $assignOrderToDriver = $this->driverOrder->createDriverOrder($request);
        DB:commit();

        return response()->json([
            "status" => "200",
            "message" => "Order has been sucessfully assigned."
        ], 200);
    }
    catch (\Exception $ex) {
        return response()->json([
            "status" => "500",
            "message" => $ex->getMessage()
        ], 500);
    }

这个问题确实在我的项目中造成了问题。我在这里做错了什么?谢谢。

php laravel lumen
1个回答
0
投票

我认为应该在$ this-> driverOrder-> createDriverOrder()中改变一些东西。你能分享一下这个功能的代码吗?

© www.soinside.com 2019 - 2024. All rights reserved.