Mit kann man Feldelemente aus einer Entität abrufen
// Find all terms on $node in field 'field_tags'.
$terms = field_get_items('node', $node, 'field_tags');
Aber gibt es eine bequeme Möglichkeit, das Gegenteil zu tun, Core oder auf andere Weise?
// Attach new term $term to $node in field 'field_tags'.
$term = taxonomy_term_load($tid);
$node = field_set_items('node', $node, 'field_tags', 'taxonomy_term', $term);
node_save($node);
Ich möchte den Aufwand vermeiden, einen $ -Term manuell manuell zuzuweisen, in der Entwicklung nachzuschauen, wie die Array-Struktur aussieht, und dann das Array von Hand zu erstellen, da es manchmal nicht trivial ist.
Das einzige Problem in der Kernwarteschlange, das ich finden konnte und das vage ähnlich aussah, betraf die Feldsprache API DX .
Damit eine solche Funktion existiert,
field_set_items()
müsste sie in der Lage sein, dasstdClass
Objekt als das eines Taxonomiebegriffs zu identifizieren und es auch einer Funktion zuzuordnen, die das Objekt dekodieren und daraus ein Feldarray erstellen kann.Da es dafür keine Kernfunktion gibt, denke ich nicht, dass dies einfach sein wird.
quelle
entity_type
ist meiner Meinung nach nicht wirklich das Problem ... das Problem ist genau das, was Sie Ihrer Frage hinzugefügt haben: "Es ist manchmal nicht trivial". Da die Daten nicht trivial sind,field_set_items
muss jeder Feldtyp im System eine Art Schnittstelle implementieren, die beschreibt, wie das Datenarray aus einem Objekt / einer beliebigen Variablen rückentwickelt wird, damit Sie wie gewünscht arbeiten können.Obwohl dies nicht dazu beiträgt, die manchmal komplizierte Array-Struktur aufzubauen, sehe ich, dass das, wonach ich suche, in Drupal 8 zu einem gewissen Grad eingeführt wurde. Vielleicht wird es in Zukunft weiter ausgebaut. :) :)
Neue einfachere API für den Zugriff auf Felder, Eigenschaften und Sprachinformationen .
Anwendungsbeispiel von der verlinkten Seite:
quelle