Puncte:0

Cum să actualizați câmpul de referință al entității cu mai multe valori în mod programatic

drapel fr

Am două tipuri de conținut de noduri tip_a și tip_b Am un câmp numit ca field_author_profile în tip_a care este câmpul de referință al entității tip_b cu cardinalitate nelimitată.

Cum actualizez field_author_profile programatic.

De asemenea, trebuie să verific dacă valoarea există deja în câmp, dacă există, atunci adăugați noua valoare în timp ce actualizez valoarea câmpului sau, altfel, atribuiți valoarea.

Am încercat variantele de mai jos, dar se pare că niciuna nu a funcționat.

$author_object->set('field_author_profile', $author_profile_nid);

$author_object->field_author_profile = ['target_id' => $author_profile_nid];

$author_object->field_author_profile->entity->target_id->value = $author_profile_nid;

$author_object->field_author_profile[] = ['target_id' => $author_profile_nid];

$author_object->field_author_profile->target_id = $author_profile_nid;

$author_object->get('field_author_profile')->setValue(['target_id' => $author_profile_nid]);

Salvat nodul după aceasta utilizând

$obiect_autor->salvare();

Editați | × : Valoarea câmpului nu a fost redată în formularul de editare a nodului, chiar dacă era prezentă în baza de date. A fost din cauza tipului de pachet greșit selectat în câmpul de referință al entității. După ce a fost corectat, a funcționat conform așteptărilor.

Aceasta a fost soluția de lucru.

$author_object->field_author_profile[] = ['target_id' => $author_profile_nid];
miststudent2011 avatar
drapel fr
Înrudit https://drupal.stackexchange.com/questions/213379/programmatically-update-an-entity-reference-field
drapel cn
Al 4-lea exemplu al tău este cel corect. De asemenea, este singurul care nu folosește `field_author_profile`, care ar putea fi problema
miststudent2011 avatar
drapel fr
@Clive, mulțumesc pentru răspuns. A fost o greșeală corectată.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.