public function searchportals($keyword, $datefrom, $dateto, $portal) { $keyword = '%' . $keyword . '%'; if ($datefrom == NULL || $dateto == NULL) { $search_items = results::where('content', 'LIKE', $keyword)->whereIn('portal', $portal)->orderBy('total_shares', 'desc')->get(['url', 'portal', 'page_title', 'date', 'fb_likes', 'fb_shares', 'fb_comments', 'gp_shares', 'total_shares']); } else { $datefrom = preg_replace('#\\/#', '-', $datefrom); $dateto = preg_replace('#\\/#', '-', $dateto); $search_items = results::where('content', 'LIKE', $keyword)->where(function ($query) use($datefrom, $dateto) { $query->whereBetween('date', [$datefrom, $dateto])->orWhere('date', '=', NULL); })->whereIn('portal', $portal)->orderBy('total_shares', 'desc')->get(['url', 'portal', 'page_title', 'date', 'fb_likes', 'fb_shares', 'fb_comments', 'gp_shares', 'total_shares']); } $fb_likes = $search_items->sum('fb_likes'); $fb_shares = $search_items->sum('fb_shares'); $fb_comments = $search_items->sum('fb_comments'); $gp_shares = $search_items->sum('gp_shares'); $total_shares = $search_items->sum('total_shares'); $social_stats = array('fb_likes' => $fb_likes, 'fb_shares' => $fb_shares, 'fb_comments' => $fb_comments, 'gp_shares' => $gp_shares, 'total_shares' => $total_shares); $this->update_social_count($social_stats); return $search_items; }