Drupal 8 - Liste zulässiger Werte (allowed values) in einem Feld programmatisch ergänzen

Mit folgendem Code ist es in Drupal möglich die Liste der zulässigen Werte für ein Feld zu ändern:

$field = \Drupal::entityTypeManager()
  ->getStorage('field_storage_config')
  ->load('entity.field_name');
$allowed_values = $field->getSetting('allowed_values');
$field->setSetting('allowed_values', $allowed_values);
$field->save();

Entscheidend hier der Inhalt von  ->load('entity.field_name');

entity ist die Entity welcher das Feld zugeordnet ist (z. B. node oder paragraph), field_name ist der Feldname. Über admin/config/development/configuration/single/export (Field Storage) kann man sich diese Information z. B. holen.

Das kann man z. B. in einem Update_hook unterbringen um ein Feld upzudaten. Wenn man die Feldinformationen per config/install (oder config/optional) bereitstellt, sollte man diese Files auch aktualisieren damit auch bei einer Neuinstallation die Konfiguration passt.

Neuen Kommentar schreiben

Filtered HTML

  • Internet- und E-Mail-Adressen werden automatisch umgewandelt.
  • Zulässige HTML-Tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • HTML - Zeilenumbrüche und Absätze werden automatisch erzeugt.
  • To post pieces of code, surround them with <code>...</code> tags. For PHP code, you can use <?php ... ?>, which will also colour it based on syntax.

Plain text

  • Keine HTML-Tags erlaubt.
  • Internet- und E-Mail-Adressen werden automatisch umgewandelt.
  • HTML - Zeilenumbrüche und Absätze werden automatisch erzeugt.