public function getFilterResult($filter, $value) { $filterValue; switch ($filter) { case 'type': $filterValue = 'IsDeal'; break; case 'store': $filterValue = 'WebsiteID'; break; case 'category': $filterValue = 'CouponCategories.CategoryID'; break; default: $result = $this->getAllCoupons(); return $result['coupons']; } $result = Coupon::findByCondition(["{$filterValue}" => $value])->with('website')->joinWith('couponCategories')->limit(60)->all(); return $result; }