public function buildShopQuery() { $this->qry = ShopDetails::leftJoin('users', 'users.id', '=', 'shop_details.user_id')->leftJoin('product', function ($join) { $join->on('users.id', '=', 'product.product_user_id'); })->Select("shop_details.*", "users.created_at", "users.first_name", "users.last_name", "users.email", "users.activated", "users.id", \DB::raw('count(product.id) as script_cnt')); $this->qry->groupBy('users.id'); $this->qry->Where('users.id', '<>', 0); //form the search query if ($this->getSrchVal('user_code')) { $this->qry->whereRaw("( users.id = ? OR users.id = ? )", array(CUtil::getUserId($this->getSrchVal('user_code')), $this->getSrchVal('user_code'))); } if ($this->getSrchVal('user_name')) { $name_arr = explode(" ", $this->getSrchVal('user_name')); if (count($name_arr) > 0) { foreach ($name_arr as $names) { $this->qry->whereRaw("( users.first_name LIKE '%" . addslashes($names) . "%' OR users.last_name LIKE '%" . addslashes($names) . "%' )"); } } } if ($this->getSrchVal('shop_name')) { $name_arr = explode(" ", $this->getSrchVal('shop_name')); if (count($name_arr) > 0) { foreach ($name_arr as $names) { $this->qry->whereRaw("( shop_details.shop_name LIKE '%" . addslashes($names) . "%')"); } } } if ($this->getSrchVal('user_email')) { $this->qry->Where('users.email', $this->getSrchVal('user_email')); } if ($this->getSrchVal('shop_featured')) { if ($this->getSrchVal('shop_featured') == 'Yes') { $this->qry->Where('shop_details.is_featured_shop', 'Yes'); } else { $this->qry->Where('shop_details.is_featured_shop', 'No'); } } $this->qry->orderBy('users.created_at', 'desc'); return $this->qry; }