0

work_orders 是 hasMany() 关系。

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

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

4

1 回答 1

0

你可以在下面做一些链接

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);
        }
    }

当然,您可以自己优化查询,因为由于某种原因我的调试栏无法正常工作。

于 2021-10-07T05:52:49.193 回答