Wenn wir zum Pfad gehen /admin/structure/types/manage/article/fields
und die Add new field
Option oder die Add existing field
Option verwenden, wird dann ein Feld erstellt, eine Feldinstanz erstellt oder eine Feldinstanz angehängt? Wie kann man sie unterscheiden? Also, programmatisch, wenn die Verwendung field_create_field , field_create_instance und field_attach API?
In der Feld-API-Dokumentation wird nur die Administrator-Benutzeroberfläche erwähnt, und es wird nie der Pfad angegeben, in dem sowohl Felder als auch Feldinstanzen erstellt werden sollen. Es ist also verwirrend. Ich weiß nicht einmal, ob ich überhaupt einen Sinn habe.
node/add/article
sind also Feldinstanzen (die bei verschiedenen Entitätstypen wiederverwendet werden). Und Felder im Pfad/admin/structure/types/manage/article/fields
sind Felder. In der Datenbank sehe ich keine Feldinstanztabelle, sondern nur die Tabelle field_data, die wir vermutlich erhalten, wenn wir zum ersten Mal ein Feld unter path/admin/structure/types/manage/article/fields
mit erstellenfield_create_field
. Und eine Instanz wird dann an ein Bundle (in diesem Fall Artikel) angehängt, das wir unter path sehennode/add/article
.Antworten:
Ein Feld ist die grundlegende Definition eines Feldes. Eine Feldinstanz eine Instanz dieses Feld, das an eine Einheit / Bündel.
Verwenden Sie, um zu überprüfen, ob das Feld oder die Instanz vorhanden ist
Wenn Sie ein Feld über die Benutzeroberfläche erstellen, erstellt Drupal immer eine Feldinstanz für diese Entität / dieses Bundle.
Wenn Sie ein vorhandenes Feld hinzufügen, werden die Felddaten geklont und eine Feldinstanz für die neue Entität / das neue Bundle erstellt.
Schließlich gelten Feldeinstellungen global für dieses Feld. Die Einstellungen für Feldinstanzen können zwischen Entitätsbündeln variieren.
quelle