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);
}
}
当然你可以自己优化查询,因为我的调试栏不工作。