original_string: public function whereInList($field, array $values, array $options = [])
      {
          $options += [
              'types' => [],
              'allowEmpty' => false,
          ];
  
          if ($options['allowEmpty'] && !$values) {
              return $this->where('1=0');
          }
  
          return $this->where([$field . ' IN' => $values], $options['types']);
      }
code: public function whereInList($field, array $values, array $options = [])
      {
          $options += [
              'types' => [],
              'allowEmpty' => false,
          ];
  
          if ($options['allowEmpty'] && !$values) {
              return $this->where('1=0');
          }
  
          return $this->where([$field . ' IN' => $values], $options['types']);
      }
code_tokens: public function whereInList ( $ field , array $ values , array $ options = [ ] ) { $ options += [ 'types' => [ ] , 'allowEmpty' => false , ] ; if ( $ options [ 'allowEmpty' ] && ! $ values ) { return $ this -> where ( '1=0' ) ; } return $ this -> where ( [ $ field . ' IN' => $ values ] , $ options [ 'types' ] ) ; }
docstring: Adds an IN condition or set of conditions to be used in the WHERE clause for this
  query.
  
  This method does allow empty inputs in contrast to where() if you set
  'allowEmpty' to true.
  Be careful about using it without proper sanity checks.
  
  Options:
  - `types` - Associative array of type names used to bind values to query
  - `allowEmpty` - Allow empty array.
  
  @param string $field Field
  @param array $values Array of values
  @param array $options Options
  @return $this
docstring_tokens: Adds an IN condition or set of conditions to be used in the WHERE clause for this query .