Grundsätzlich möchte ich Vor- und Nachnamen in $ node-> field_par_contact_name zusammenfügen
Aber es warnt mich. (Siehe unten)
Funktion partnerschaft_knoten_presave ($ knoten) { if ($ node-> type == 'partnerschaft') { $ first_name = $ node-> field_par_contact_first_name ['und'] [0] ['name']; $ surname = $ node-> field_par_contact_surname ['und'] [0] ['name']; // https://drupal.org/project/field_hidden // Versteckte Variable $ node-> field_par_contact_name ['und'] [0] ['value'] = $ first_name. ''. $ Nachname; // Warnung nach dem Speichern: array_flip (): Kann nur STRING- und INTEGER-Werte umdrehen! in DrupalDefaultEntityController-> load () (Zeile 173 von ... / drupal-7.23 / includes / entity.inc }} }}
Aktualisiert , siehe Bild:
Antworten:
Für den Anfang verwenden Sie wahrscheinlich den falschen Array-Schlüssel für den Feldwert, den Sie speichern. 'name' sollte dort 'value' sein.
Zweitens verwenden Sie tatsächlich Taxonomy Term Reference-Felder für Ihre Felder "Vorname" und "Nachname". Ein wichtiger Punkt bei Referenzfeldern ist, dass Sie nicht immer davon ausgehen können, dass die referenzierten Entitäten vollständig geladen wurden und in Ihrem Objekt verfügbar sind. Wenn das Knotenobjekt geladen wird, sieht dieses Feld standardmäßig nur so aus:
Nur der 'tid'-Schlüssel ist definitiv da. 'name' ist eine Eigenschaft des referenzierten Begriffs und normalerweise nicht automatisch verfügbar. (Nachfolgender Code lädt möglicherweise den referenzierten Begriff und stellt ihn im $ node-Objekt zur Verfügung. Dies ist jedoch nur zufällig der Fall.)
Sie würden es viel einfacher haben, wenn Ihre Felder "Vorname" und "Nachname" Textfelder anstelle von Referenzen wären. Dann würden diese Werte direkt zum Knoten selbst gehören und nicht zu einem separaten Taxonomiebegriff, auf den verwiesen wird.
Wenn Sie jedoch keine Taxonomie-Termreferenzen mehr verwenden, sollten Sie in Ihrem Code einen Punkt angeben, um den referenzierten Term zu laden, und dann die benötigten Werte aus der Eigenschaft $ term-> name selbst abrufen.
quelle