Vreau să adaug un nou termen de taxonomie la grupul de noduri care au deja termeni specifici.
Pentru a le recupera, folosesc această funcție
funcția getNodesByTaxonomyTermIds($termIds){
$termIds = (matrice) $termIds;
if(gol($termIds)){
returnează NULL;
}
$interogare = \Drupal::database()->select('taxonomy_index', 'ti');
$query->fields('ti', array('nid'));
$query->condition('ti.tid', $termIds, 'IN');
$interogare->distinct(TRUE);
$rezultat = $interogare->execute();
if($nodeIds = $result->fetchCol()){
return Node::loadMultiple($nodeIds);
}
returnează NULL;
}
apoi, în bucla foreach, le adaug la un termen nou în funcție de data creării, dar adăugarea nu funcționează.
Iată structura mea de câmp:
Mai întâi le-am încercat pe toate:
$node->set('field_news_categories', ['target_id' => $termID])
$node->set('field_news_categories', $termID)
$nod->set('field_news_categories', array($termID))
$nod->field_news_categories->setValue(['target_id' => $termID])
$nod->field_news_categories->setValue($termID)
$nod->field_news_categories->setValue(array($termID))
niciunul nu a funcționat, așa că m-am gândit că ar trebui să trec întreg câmpul cu exact aceeași structură, așa că am vrut să obțin câmp și doar să adaug id-ul și apoi să-l transmit ca argument în metoda set, dar nici nu am reușit să obțin câmp. Tot ce primeam erau valori nule sau matrice goale.
Am incercat:
$node->field_news_categories->getValue()
$node->get('field_news_categories')->getValue()
$nod->field_news_categories->valoare
$node->get('field_news_categories')->valoare
$nod->field_news_categories
$node->get('field_news_categories')
$node->get('field_news_categories')->target_id
$node->get('field_news_categories')->entity
$node->get('field_news_categories')->referencedEntities()
Proiectul este în drupal 9