ฉันต้องการเพิ่มคำศัพท์อนุกรมวิธานใหม่ให้กับกลุ่มของโหนดที่มีคำศัพท์เฉพาะอยู่แล้ว
ฉันใช้ฟังก์ชันนี้เพื่อดึงข้อมูลเหล่านั้น
ฟังก์ชัน getNodesByTaxonomyTermIds($termIds){
$termIds = (อาร์เรย์) $termIds;
ถ้า(ว่าง($termIds)){
ส่งคืน NULL;
}
$query = \Drupal::database()->select('taxonomy_index', 'ti');
$query->fields('ti', array('nid'));
$query->condition('ti.tid', $termIds, 'IN');
$query->distinct(จริง);
$result = $query->execute();
ถ้า($nodeIds = $result->fetchCol()){
ส่งคืนโหนด :: loadMultiple ($ nodeIds);
}
ส่งคืน NULL;
}
จากนั้นใน foreach ฉันกำลังเพิ่ม im เพิ่มลงในคำใหม่ตามวันที่สร้าง แต่การเพิ่มไม่ทำงาน
นี่คือโครงสร้างฟิลด์ของฉัน:
ก่อนอื่นฉันลองทั้งหมด:
$node->set('field_news_categories', ['target_id' => $termID])
$node->set('field_news_categories', $termID)
$node->set('field_news_categories', อาร์เรย์($termID))
$node->field_news_categories->setValue(['target_id' => $termID])
$node->field_news_categories->setValue($termID)
$node->field_news_categories->setValue(อาร์เรย์($termID))
ไม่มีใครทำงานดังนั้นฉันคิดว่าบางทีฉันควรส่งทั้งฟิลด์ด้วยโครงสร้างเดียวกัน ดังนั้นฉันจึงอยากได้ฟิลด์และต่อท้าย id แล้วส่งเป็นอาร์กิวเมนต์ใน set method แต่ฉันก็รับฟิลด์ไม่ได้เช่นกัน ทั้งหมดที่ฉันได้รับคือค่า Null หรืออาร์เรย์ว่าง
ฉันเหนื่อย:
$node->field_news_categories->getValue()
$node->get('field_news_categories')->getValue()
$node->field_news_categories->value
$node->get('field_news_categories')->ค่า
$node->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()
โครงการอยู่ใน drupal 9