getModel()->when(!empty($where['chat_id']), function ($query) use ($where) { $query->whereIn('owner', function ($query) use ($where) { $query->name('work_group_msg_task')->when(!empty($where['status']), function ($query) use ($where) { $query->where('status', $where['status']); })->whereIn('chat_id', $where['chat_id'])->field('userid'); }); })->when(!empty($where['owner']), function ($query) use ($where) { $query->whereIn('owner', $where['owner']); })->when(!empty($where['name']), function ($query) use ($where) { $query->whereLike('name', '%' . $where['name'] . '%'); })->when(!empty($where['chat_id']), function ($query) use ($where) { if (is_array($where['chat_id'])) { $query->whereIn('chat_id', $where['chat_id']); } else { $query->where('chat_id', $where['chat_id']); } }); } }