Несколько записей создаются для одного заказа
Я использую 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(). Можете ли вы поделиться кодом этой функции.