src/Handler.php
protected function filter($key, $value)
    {
        extract($this->formatParam($key, $value));

        if (! $this->canFilter($column)) {
            return;
        }

        if ($comparator == 'IN') {
            $values = explode(',', $value);
            $this->getHandler()->whereIn($column, $values);
        } elseif ($comparator == 'NOT IN') {
            $values = explode(',', $value);
            $this->getHandler()->whereNotIn($column, $values);
        } else {
            $values = explode('|', $value);
            if (count($values) > 1) {
                $this->getHandler()->where(function ($query) use ($column, $comparator, $values) {
                    foreach ($values as $value) {
                        if ($comparator == 'LIKE' || $comparator == 'NOT LIKE') {
                            $value = preg_replace('/(^\*|\*$)/', '%', $value);
                        }
                        // Link the filters with AND of there is a "not" and with OR if there's none
                        if ($comparator == '!=' || $comparator == 'NOT LIKE') {
                            $query->where($column, $comparator, $value);
                        } else {
                            $query->orWhere($column, $comparator, $value);
                        }
                    }
                });
            } else {
                $value = $values[0];
                if ($comparator == 'LIKE' || $comparator == 'NOT LIKE') {
                    $value = preg_replace('/(^\*|\*$)/', '%', $value);
                }
                if ($comparator == 'NULL' || $comparator == 'NOT NULL') {
                    $this->getHandler()->whereNull($column, 'and', $comparator == 'NOT NULL');
                } else {
                    $this->getHandler()->where($column, $comparator, $value);
                }
            }
        }
    }
protected function filter($key, $value)
    {
        extract($this->formatParam($key, $value));

        if (! $this->canFilter($column)) {
            return;
        }

        if ($comparator == 'IN') {
            $values = explode(',', $value);
            $this->getHandler()->whereIn($column, $values);
        } elseif ($comparator == 'NOT IN') {
            $values = explode(',', $value);
            $this->getHandler()->whereNotIn($column, $values);
        } else {
            $values = explode('|', $value);
            if (count($values) > 1) {
                $this->getHandler()->where(function ($query) use ($column, $comparator, $values) {
                    foreach ($values as $value) {
                        if ($comparator == 'LIKE' || $comparator == 'NOT LIKE') {
                            $value = preg_replace('/(^\*|\*$)/', '%', $value);
                        }
                        // Link the filters with AND of there is a "not" and with OR if there's none
                        if ($comparator == '!=' || $comparator == 'NOT LIKE') {
                            $query->where($column, $comparator, $value);
                        } else {
                            $query->orWhere($column, $comparator, $value);
                        }
                    }
                });
            } else {
                $value = $values[0];
                if ($comparator == 'LIKE' || $comparator == 'NOT LIKE') {
                    $value = preg_replace('/(^\*|\*$)/', '%', $value);
                }
                if ($comparator == 'NULL' || $comparator == 'NOT NULL') {
                    $this->getHandler()->whereNull($column, 'and', $comparator == 'NOT NULL');
                } else {
                    $this->getHandler()->where($column, $comparator, $value);
                }
            }
        }
    }
protected function filter ( $ key , $ value ) { extract ( $ this -> formatParam ( $ key , $ value ) ) ; if ( ! $ this -> canFilter ( $ column ) ) { return ; } if ( $ comparator == 'IN' ) { $ values = explode ( ',' , $ value ) ; $ this -> getHandler ( ) -> whereIn ( $ column , $ values ) ; } elseif ( $ comparator == 'NOT IN' ) { $ values = explode ( ',' , $ value ) ; $ this -> getHandler ( ) -> whereNotIn ( $ column , $ values ) ; } else { $ values = explode ( '|' , $ value ) ; if ( count ( $ values ) > 1 ) { $ this -> getHandler ( ) -> where ( function ( $ query ) use ( $ column , $ comparator , $ values ) { foreach ( $ values as $ value ) { if ( $ comparator == 'LIKE' || $ comparator == 'NOT LIKE' ) { $ value = preg_replace ( '/(^\*|\*$)/' , '%' , $ value ) ; } // Link the filters with AND of there is a "not" and with OR if there's none if ( $ comparator == '!=' || $ comparator == 'NOT LIKE' ) { $ query -> where ( $ column , $ comparator , $ value ) ; } else { $ query -> orWhere ( $ column , $ comparator , $ value ) ; } } } ) ; } else { $ value = $ values [ 0 ] ; if ( $ comparator == 'LIKE' || $ comparator == 'NOT LIKE' ) { $ value = preg_replace ( '/(^\*|\*$)/' , '%' , $ value ) ; } if ( $ comparator == 'NULL' || $ comparator == 'NOT NULL' ) { $ this -> getHandler ( ) -> whereNull ( $ column , 'and' , $ comparator == 'NOT NULL' ) ; } else { $ this -> getHandler ( ) -> where ( $ column , $ comparator , $ value ) ; } } } }
Apply the filter to query builder.

@param  string $key
@param  string $value
@return void
Apply the filter to query builder .