Alle verfügbaren Field Types auflisten

Die Felder oder Eigenschaften einer Content Entity in Drupal 8 werden innerhalb der Entity Klasse in der baseFieldDefinitions Methode implementiert. Beispiel:

class Advertiser extends ContentEntityBase implements ContentEntityInterface {
  public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
    // Standard field, used as unique if primary index.
    $fields['id'] = BaseFieldDefinition::create('integer')
      ->setLabel(t('ID'))
      ->setDescription(t('The ID of the Advertiser entity.'))
      ->setReadOnly(TRUE);
 
    // Standard field, unique outside of the scope of the current project.
    $fields['uuid'] = BaseFieldDefinition::create('uuid')
      ->setLabel(t('UUID'))
      ->setDescription(t('The UUID of the Advertiser entity.'))
      ->setReadOnly(TRUE);
 
    return $fields;
  }
}

Verfügbar Feldtypen anzeigen

Damit man weiß, welche Feldtypen alle zur Verfügung stehen, die dann in BaseFieldDefinition::create() genutzt werden können, kann man sich diese mit folgendem Befehl auflisten lassen:

$types = Drupal::service('plugin.manager.field.field_type')->getDefinitions();
foreach ($types as $key => $value) {
  echo $key, "\";
}

Verfügbare Feldtypen in einem Standard Drupal

In einer Standard Drupal 8 Installation gibt es die folgenden Typen:

  • comment
  • datetime
  • file
  • image
  • link
  • list_string
  • list_float
  • list_integer
  • path
  • text_with_summary
  • text
  • text_long
  • email
  • boolean
  • created
  • changed
  • timestamp
  • string_long
  • language
  • decimal
  • uri
  • float
  • password
  • string
  • integer
  • entity_reference
  • uuid
  • map
  • taxonomy_term_reference

Da aber viele Contrib Module auch zusätzliche Typen implementieren, ist es immer nützlich, sich die verfügbaren Feldtypen für die eigene Installation anzeigen zu lassen.