private function whereInValues($method, $column, $values, $filter)
    {
        if (!$this->queryBuilder->isFilterable($filter, $values)) {
            return $this;
        }

        if ($values instanceof RawBindingInterface) {
            call_user_func(array($this->queryBuilder, $method), $column, $values->getTarget(), $filter);
        } elseif ($values instanceof RawSqlFragmentInterface) {
            call_user_func(array($this->queryBuilder, $method), $column, $values, $filter);
        } else {
            // Prepare bindings, firstly
            $bindings = array();

            foreach ($values as $value) {
                // Generate unique placeholder
                $placeholder = $this->getUniqPlaceholder();
                // Append to collection
                $bindings[$placeholder] = $value;
            }

            call_user_func(array($this->queryBuilder, $method), $column, array_keys($bindings), $filter);

            // Now bind what we have so far
            foreach ($bindings as $key => $value) {
                $this->bind($key, $value);
            }
        }

        return $this;
    }
private function whereInValues($method, $column, $values, $filter)
    {
        if (!$this->queryBuilder->isFilterable($filter, $values)) {
            return $this;
        }

        if ($values instanceof RawBindingInterface) {
            call_user_func(array($this->queryBuilder, $method), $column, $values->getTarget(), $filter);
        } elseif ($values instanceof RawSqlFragmentInterface) {
            call_user_func(array($this->queryBuilder, $method), $column, $values, $filter);
        } else {
            // Prepare bindings, firstly
            $bindings = array();

            foreach ($values as $value) {
                // Generate unique placeholder
                $placeholder = $this->getUniqPlaceholder();
                // Append to collection
                $bindings[$placeholder] = $value;
            }

            call_user_func(array($this->queryBuilder, $method), $column, array_keys($bindings), $filter);

            // Now bind what we have so far
            foreach ($bindings as $key => $value) {
                $this->bind($key, $value);
            }
        }

        return $this;
    }
private function whereInValues ( $ method , $ column , $ values , $ filter ) { if ( ! $ this -> queryBuilder -> isFilterable ( $ filter , $ values ) ) { return $ this ; } if ( $ values instanceof RawBindingInterface ) { call_user_func ( array ( $ this -> queryBuilder , $ method ) , $ column , $ values -> getTarget ( ) , $ filter ) ; } elseif ( $ values instanceof RawSqlFragmentInterface ) { call_user_func ( array ( $ this -> queryBuilder , $ method ) , $ column , $ values , $ filter ) ; } else { // Prepare bindings, firstly $ bindings = array ( ) ; foreach ( $ values as $ value ) { // Generate unique placeholder $ placeholder = $ this -> getUniqPlaceholder ( ) ; // Append to collection $ bindings [ $ placeholder ] = $ value ; } call_user_func ( array ( $ this -> queryBuilder , $ method ) , $ column , array_keys ( $ bindings ) , $ filter ) ; // Now bind what we have so far foreach ( $ bindings as $ key => $ value ) { $ this -> bind ( $ key , $ value ) ; } } return $ this ; }
Internal method to handle WHERE IN methods

@param string $method
@param string $column
@param array|\Krystal\Db\Sql\RawBindingInterface|\Krystal\Db\Sql\RawSqlFragmentInterface $values
@param boolean $filter Whether to rely on filter
@return \Krystal\Db\Sql\Db
Internal method to handle WHERE IN methods