Несколько записей создаются для одного заказа

Я использую 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);
    }

Эта проблема действительно создает проблему в моем проекте. Я что-то здесь не так делаю? Спасибо.

1 ответ

Я думаю, что-то должно измениться внутри $this->driverOrder->createDriverOrder(). Можете ли вы поделиться кодом этой функции.

Другие вопросы по тегам