public function where($conditions = null, $types = [], $overwrite = false)
    {
        if ($conditions === null) {
            return $this->clause('where');
        }

        $this->_parts['where'] = (!$overwrite) ? Hash::merge($this->clause('where'), $conditions) : $conditions;

        return $this;
    }
public function where($conditions = null, $types = [], $overwrite = false)
    {
        if ($conditions === null) {
            return $this->clause('where');
        }

        $this->_parts['where'] = (!$overwrite) ? Hash::merge($this->clause('where'), $conditions) : $conditions;

        return $this;
    }
public function where ( $ conditions = null , $ types = [ ] , $ overwrite = false ) { if ( $ conditions === null ) { return $ this -> clause ( 'where' ) ; } $ this -> _parts [ 'where' ] = ( ! $ overwrite ) ? Hash :: merge ( $ this -> clause ( 'where' ) , $ conditions ) : $ conditions ; return $ this ; }
Apply conditions to the query

@param array|null $conditions The conditions to apply
@param array|null $types Not used
@param bool $overwrite Whether to overwrite the current conditions
@return $this|array
Apply conditions to the query