code: protected static function filterCondition(array $condition, array $aliases = [])
      {
          $result = [];
          $db = static::getDb();
          $columnNames = static::filterValidColumnNames($db, $aliases);
  
          foreach ($condition as $key => $value) {
              if (is_string($key) && !in_array($db->quoteSql($key), $columnNames, true)) {
                  throw new InvalidArgumentException('Key "' . $key . '" is not a column name and can not be used as a filter');
              }
              $result[$key] = is_array($value) ? array_values($value) : $value;
          }
  
          return $result;
      }
docs: Filters array condition before it is assiged to a Query filter.
  
  This method will ensure that an array condition only filters on existing table columns.
  
  @param array $condition condition to filter.
  @param array $aliases
  @return array filtered condition.
  @throws InvalidArgumentException in case array contains unsafe values.
  @throws InvalidConfigException
  @since 2.0.15
  @internal