leftjoin('distribution_manages','distribution_manages.id','=','distribution_channels.distribution_manages_id') ->leftjoin('business_channel_day_stats','business_channel_day_stats.distribution_channel_id','=','distribution_channels.id') ->orderBy('distribution_channels.id','asc'); $search_object->where(function ($query) use($params) { $query->where('distribution_manages.role', 'business') ->orWhereNull('distribution_manages.role'); }); if(isset($params['channel_id']) && $params['channel_id']) $search_object->where('distribution_channels.id', $params['channel_id']); if(isset($params['channel_name']) && $params['channel_name']) $search_object->where('distribution_channels.name','like', "%".$params['channel_name']."%"); if(isset($params['search_name']) && $params['search_name']) { $search_object->where(function ($query) use($params) { $query->where('distribution_channels.name','like', "%".$params['search_name']."%") ->orWhere('distribution_channels.nickname', 'like', "%".$params['search_name']."%") ->orWhere('distribution_channels.person_in_charge_name', 'like', "%".$params['search_name']."%"); }); } if(isset($params['start_date']) && $params['start_date']) $search_object->where('distribution_channels.created_at','>=', $params['start_date']); if(isset($params['end_date']) && $params['end_date']) $search_object->where('distribution_channels.created_at','<=', $params['end_date']); if(isset($params['start_dateA']) && $params['start_dateA']) $search_object->where('business_channel_day_stats.date','>=', $params['start_date']); if(isset($params['end_dateA']) && $params['end_dateA']) $search_object->where('business_channel_day_stats.date','<=', $params['end_date']); if(isset($params['is_enabled']) && is_numeric($params['is_enabled'])) { $search_object->where('distribution_channels.is_enabled', $params['is_enabled']); } if(isset($params['distribution_manages_id']) && is_numeric($params['distribution_manages_id'])) { $search_object->where('distribution_channels.distribution_manages_id', $params['distribution_manages_id']); } if($isAll) { return $search_object->get(); } else { return $search_object->paginate(); } } }