Предполагая, что вы настроили модель своего лагеря, вы можете сделать что-то вроде этого:
$db = Camp::selectRaw("c.id, sys_id, cam_name, description, brand, product, c.status, update_by, start_date, end_date,
DATE_FORMAT(CONVERT_TZ(c.created_at, @@session.time_zone, ?), '%Y-%m-%d %H:%i:%s') as created_at,
DATE_FORMAT(CONVERT_TZ(c.updated_at, @@session.time_zone, ?), '%Y-%m-%d %H:%i:%s') as updated_at,
hashid, blm_field, inactive_period, is_testing, signature, camp_type,
SUM(IF(p.inter = 1 AND p.admin_res = 0, 1, 0)) as Bi_count", ['offset1' => Common::utc_offset(), 'offset2' => Common::utc_offset()])
->leftJoin('pros', 'camp.id', '=', 'pros.camp_id');
if($campaign_type != null){
$db->where('campaign_type', $campaign_type);
}
$db->GroupBy('camp.id');
$db = $db->paginate(10);