Am un nod (de exemplu, o „companie”) cu un câmp referit la un paragraf (să presupunem „sector” de afaceri cu mai multe câmpuri). Acest paragraf are în câmpurile sale o trimitere la un alt paragraf (să presupunem „angajat” cu mai multe câmpuri, unul dintre acestea este o referire la un termen de taxonomie).
Într-o hook_form_submit()
, cu $form
și FormStateInterface $form_state
ca parametri, trebuie să asociez programatic mai mulți angajați paragraf la un paragraf de sector.
...
$nod = Nod::load($id);
$sector = Paragraph::load($node->get('field_sector')->target_id);
/**
* Lista de termeni de taxonomie încărcate în altă parte.
* Am adăugat un element personalizat la selectarea cu „_toți” angajații
* pentru a asocia programatic toți angajații la sectorul $.
*
* @var array $angajați
*/
foreach ($angajați ca $angajați) {
$paragraf = Paragraf::create([
'type' => 'angajat',
]);
$paragraf->set('nume_câmp', $angajat->get('nume_câmp')->valoare);
$paragraph->set('field_age', $employee->get('field_age')->value);
...
$paragraf->salvare();
$sector->set('câmp_angajat', $paragraf); // aici nu stiu sa atasez sectorului
$sector->salvare();
}
Am încercat să asociez fiecare $angajat la $sector dar cu $sector->set('câmp_angajat', $paragraf);
sintaxă sau cu $sector->appendItem($paragraf)
, care funcționează pentru noduri, nu funcționează.
Există o modalitate de a adăuga programatic un paragraf la altul?
Vizualizarea intrebarii, in imaginea de mai jos, cand salvez entitatea cu optiunea personalizata "Toti angajatii" (_toate
) selectat, aș dori să atașez toți cei 4 angajați de paragraf asociați la paragraful „un sector selectat” (eliminând _toate
).
Mulțumesc anticipat.
EDITARE 1
Am văzut răspunsul sugerat Adăugați în mod programatic mai multe paragrafe la câmpul de referință al entității de pe nod dar rezolvă cum să atașați un Paragraf la a $node
, nu un paragraf la un paragraf al $node
.
Am incercat si asta:
$angajat->setParentEntity($sector, 'câmp_de_referinţă');
$angajat->salvează();
dar tot nu anexează $angajat
la $sector
.
EDITARE 2
Am încercat să urmăresc postările sugerate, dar nu îmi pot da seama cum să adaptez acel cod în interiorul unui hook_form_submit()
.
Mulțumesc oricum tuturor, cred că este o construcție proastă a codului meu.