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; } }
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, "\"; }
In einer Standard Drupal 8 Installation gibt es die folgenden Typen:
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.