framework/db/QueryTrait.php
public function filterWhere(array $condition)
    {
        $condition = $this->filterCondition($condition);
        if ($condition !== []) {
            $this->where($condition);
        }

        return $this;
    }
public function filterWhere(array $condition)
    {
        $condition = $this->filterCondition($condition);
        if ($condition !== []) {
            $this->where($condition);
        }

        return $this;
    }
public function filterWhere ( array $ condition ) { $ condition = $ this -> filterCondition ( $ condition ) ; if ( $ condition !== [ ] ) { $ this -> where ( $ condition ) ; } return $ this ; }
Sets the WHERE part of the query but ignores [[isEmpty()|empty operands]].

This method is similar to [[where()]]. The main difference is that this method will
remove [[isEmpty()|empty query operands]]. As a result, this method is best suited
for building query conditions based on filter values entered by users.

The following code shows the difference between this method and [[where()]]:

```php
// WHERE `age`=:age
$query->filterWhere(['name' => null, 'age' => 20]);
// WHERE `age`=:age
$query->where(['age' => 20]);
// WHERE `name` IS NULL AND `age`=:age
$query->where(['name' => null, 'age' => 20]);
```

Note that unlike [[where()]], you cannot pass binding parameters to this method.

@param array $condition the conditions that should be put in the WHERE part.
See [[where()]] on how to specify this parameter.
@return $this the query object itself
@see where()
@see andFilterWhere()
@see orFilterWhere()
Sets the WHERE part of the query but ignores [[ isEmpty () |empty operands ]] .