检查交易中所有订单的状态并将交易标记为完成



work_orders是hasMany()关系

foreach ($deal->work_orders as  $work_order) {
if ($work_order->status != completed) {
return 0;
} else {
completeDeal($deal->id);
}
}

我想检查是否交易中的所有订单都已完成,然后运行一个函数来完成交易。如果任何工作订单没有完成,那么什么都不做,然后返回。我当前代码的问题是,如果任何工作订单完成,它标志着交易完成。但是我想检查一下是否所有的订单都完成了

你可以做点什么

foreach ($deals as $key => $deal) {
$total_order_count = $deal->work_orders->count();
$completed_order_count = $deal->work_orders->where('status', 1)->count();
if ($total_order_count != $completed_order_count ) {
return 0;
} else {
completeDeal($deal->id);
}
}

当然你可以自己优化查询,因为我的调试栏不工作。

相关内容

  • 没有找到相关文章

最新更新