where('transaction_id', $search['transaction_id']); } if ($search['order_sn']) { $query->whereHas('hasOneWechatOrder', function ($q) use ($search) { $q->whereHas('hasOneOrder',function ($q2) use ($search) { $q2->where('order_sn', $search['order_sn']); }); }); } if ($search['status'] != '') { $query->where('status', $search['status']); } if ($search['is_time']) { $query->whereBetween('created_at', [strtotime($search['time']['start']), strtotime($search['time']['end'])]); } return $query; } public function hasOneWechatOrder() { return $this->hasOne(WechatPayOrder::class, 'transaction_id','transaction_id'); } }