Puncte:0

Cum pot seta programatic o referință de conținut după nume pentru un nod?

drapel id

Salut echipa, am cateva probleme.

Creez un nod și aș dori să setez o referință de conținut după nume, nu după id, fac asta, dar nu funcționează: „field_content_type_items” este referit la un alt tip de conținut

$nod = \Drupal\node\Entity\Node::create([
    'type' => 'articole',
    'status' => $status,
    'title' => $titlu,
    'field_content_type_items' => "CUN",
]);

Am incercat si eu cu acest exemplu 'field_content_type_items' => [['target_id' => 12]], dar nu stiu id-ul pentru CUN deci nu pot folosi target_id si eu am incercat:

$nod->set('field_content_type_items', 'CUN');

Mă puteți ajuta , vă rog?

Cum pot seta un nume de conținut când creez un nod?

Salutari Mario

Puncte:2
drapel cn

Câmpurile de referință la entitate se așteaptă la un ID de entitate, așa că, dacă nu doriți să extindeți tipul de câmp (care ar putea deveni dezordonat inutil), va trebui să obțineți ID-ul conținutului țintă.

O metodă de a face acest lucru este EntityStorageBase::loadByProperties(), de exemplu.

$target_nodes = \Drupal::entityTypeManager()->getStorage('nod')
  ->loadByProperties(['title' => 'CUN', 'type' => 'foo']);

dacă (număr($target_nodes)) {
  // De dragul exemplului presupunem că primul nod este cel corect.
  $target_id = reset($target_nodes)->id();

  // ...
}

Rețineți că titlurile nodurilor nu sunt unice, așa că ar putea fi necesar să adăugați o logică suplimentară de filtrare pentru a obține exact nodul de care aveți nevoie.

mxr10 avatar
drapel id
da, asta am crezut, pentru a obține nodul id folosind o interogare și apoi folosind în target_id, mulțumesc

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.