diff --git a/src/QueryBuilderParser/QueryBuilderParser.php b/src/QueryBuilderParser/QueryBuilderParser.php index 8bfec96..05ca363 100644 --- a/src/QueryBuilderParser/QueryBuilderParser.php +++ b/src/QueryBuilderParser/QueryBuilderParser.php @@ -13,6 +13,8 @@ class QueryBuilderParser protected $fields; + protected $useHaving = false; + /** * @param array $fields a list of all the fields that are allowed to be filtered by the QueryBuilder */ @@ -21,6 +23,18 @@ public function __construct(array $fields = null) $this->fields = $fields; } + /** + * Use "having" instead of "where" in the queries. + * + * @return QueryBuilderParser + */ + public function setUseHaving() + { + $this->useHaving = true; + + return $this; + } + /** * QueryBuilderParser's parse function! * @@ -253,6 +267,10 @@ protected function convertIncomingQBtoQuery(Builder $query, stdClass $rule, $val return $this->makeQueryWhenNull($query, $rule, $sqlOperator, $condition); } + if ($this->useHaving) { + return $query->having($rule->field, $sqlOperator['operator'], $value, $condition); + } + return $query->where($rule->field, $sqlOperator['operator'], $value, $condition); }