Drupal 8

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');

Drupal 8 Service und IDE Autocompletion

Wenn man sich in Drupal einen Service auf die übliche Art und Weise holt, z. B. so:

// Returns a Drupal\Core\Datetime\DateFormatter object.
$date = \Drupal::service('date.formatter');

Dann hat man keine Autocompletion-Funktionalität in der IDE (hier phpstorm), wie man das sonst bei anders instanzierten Klassen nutzen kann.

Um auch hier Autocompletion nutzen zu können, kann man den Variablen-Typ per Kommentar (für die IDE) definieren, z. B. so:

Remove a base field from a custom content entity in Drupal 8

Drupal 8 comes with a new paradigm for the entity fields on content entities (there is also whole new thing of config entities, but this is not within the scope of this post). As with Drupal 7 there were properties and fields for an entity, now everything is a field (base fields, and field api fields via field UI). Similar to entity properties in D7, there are now base fields used in D8.

Seiten