it-swarm.com.de

Was ist der Zweck von entity_keys in ContentEntityBase?

Ich versuche herauszufinden, was der Zweck von entity_keys In ContentEntityBase Entitäten ist und welche Felder als entity_keys Festgelegt werden sollten.

Zum Beispiel haben wir in \ Drupal\node\Entity\Node solche entity_keys:

entity_keys = {
 "id" = "nid",
 "revision" = "vid",
 "bundle" = "type",
 "label" = "title",
 "langcode" = "langcode",
 "uuid" = "uuid",
 "status" = "status",
 "uid" = "uid",
}

Warum werden genau diese Felder als entity_keys Ausgewählt? Und warum zum Beispiel in \ Drupal\comment\Entity\Commentstatus nicht in entity_keys?

6
Maria Kvitova

entity_keys sind grundsätzlich ein Alias ​​für Felder. Es ermöglicht generischem Code wie den Speicher-Backends den Zugriff auf allgemeine Felder mit unterschiedlichen Namen, z. B. die ID. Sie müssen den gespeicherten Wert schreiben, damit sie nicht einfach id () als die meisten Stellen verwenden können.

Intern werden diese Schlüssel auch von generischen Methoden wie id (), label (), getRevisionId () usw. verwendet, sodass sie sofort funktionieren.

Es gibt nicht wirklich einen Grund, warum ein Kommentar den Status nicht definiert. Nichts verwendet den Status wirklich. Wenn Sie nach getKey ('status') suchen, gibt es keine Übereinstimmungen, während getKey ('id') viel findet.

Der Knoten verwendet es nur intern für isPublished ().

9
Berdir