Möchten Sie dies programmgesteuert tun oder die Verwendung von Feldern auf einer Site über die Benutzeroberfläche überprüfen?
autopoietic
Ich möchte dies programmatisch ..
Ajay Reddy
Antworten:
8
Ich würde EntityFieldManager :: getFieldMap empfehlen . Der EntityManager ist nur ein Dienst zum Bereitstellen von Funktionen aus anderen Klassen.
Aus der Dokumentation:
Rückgabewert
Array Ein nach Entitätstyp verschlüsseltes Array. Jeder Wert ist ein Array, dessen Schlüssel Feldnamen sind, und der Wert ist ein Array mit zwei Einträgen:
Typ : Der Feldtyp.
Bundles : Ein assoziatives Array der Bundles, in denen das Feld angezeigt wird, wobei die Schlüssel und Werte beide der Computername des Bundles sind.
EntityFieldManagerInterface::getFieldMap() Erzeugt ein verschlüsseltes Array nach Entitätstyp> Feldname mit weiteren Informationen zum Feldtyp und den zugehörigen Bundles.
Danke Shawn, ich bekomme keine Felder wie im obigen Bild. Unter Feld bekomme ich:comment, contact_message, file, node, shortcut, taxonomy_term, user, menu_link_content
Ajay Reddy
Es gab einen Tippfehler mit dem Code. Wie in der Antwort erwähnt, erzeugt die Funktion ein verschlüsseltes Array, das Entitäten, Feldnamen und dann Felddetails enthält.
Shawn Conn
Die Methode 'entityManager' ist veraltet. Verwenden Sie stattdessen in den meisten Fällen \ Drupal :: entityTypeManager ()
JF Kiwad
2
field_info_instance()würde tun, was Sie wollen, aber wenn Sie in den Dokumenten schauen, werden Sie sehen, dass es in D8 zugunsten von veraltet ist
Vielen Dank für Ihre Antwort, aber ich muss eine Liste aller Felder erhalten, die nur verwendet werden. Ich möchte nicht nach Entitätstyp, Bundle und Feldname verwenden. Als Referenz zum Hochladen des Bildes.
Antworten:
Ich würde EntityFieldManager :: getFieldMap empfehlen . Der EntityManager ist nur ein Dienst zum Bereitstellen von Funktionen aus anderen Klassen.
Aus der Dokumentation:
quelle
EntityFieldManagerInterface::getFieldMap()
Erzeugt ein verschlüsseltes Array nach Entitätstyp> Feldname mit weiteren Informationen zum Feldtyp und den zugehörigen Bundles.Es gibt auch,
EntityFieldManagerInterface::getFieldDefinitions()
wenn Sie weitere Feldmetadaten möchten. Es erzeugt ein Array vonBaseFieldDefinition
&FieldConfig
Objekten, die Sie für weitere Details analysieren können.quelle
comment, contact_message, file, node, shortcut, taxonomy_term, user, menu_link_content
field_info_instance()
würde tun, was Sie wollen, aber wenn Sie in den Dokumenten schauen, werden Sie sehen, dass es in D8 zugunsten von veraltet istquelle