ฉันกำลังพยายามตั้งค่าโมดูลแบบกำหนดเองซึ่งคัดลอกค่าจากโหนดที่มีเนื้อหาเป็นประเภท ก ไปยังโหนดที่มีเนื้อหาเป็นประเภท ข. ส่วนใหญ่แล้ว ชนิดเนื้อหาจะมีฟิลด์เดียวกัน แต่ ข มีช่องเพิ่มเติมสองสามช่อง
ก
- ชื่อเรื่อง (ชื่อเรื่อง)
- ร่างกาย (ร่างกาย)
- วันที่ (field_date_agenda)
ข
- ชื่อเรื่อง (ชื่อเรื่อง)
- ร่างกาย (ร่างกาย)
- วันที่ (field_date_agenda)
- จำนวนรายการ (field_int_how_many)
- อ้างอิงถึง ก (field_noderef_nta)
กับ $cloned_node = $node->createDuplicate()
ฉันสามารถคัดลอกฟิลด์ทั้งหมดจาก กรวมทั้งสามารถเปลี่ยนประเภทเนื้อหาเป็น ข.
เนื่องจาก ก ไม่มีฟิลด์เพิ่มเติมที่แนบมากับมัน สร้างซ้ำ ()
จะไม่คัดลอกพวกเขา
ตอนนี้ สิ่งที่ฉันต้องการทำคือเพิ่มฟิลด์อื่นๆ โดยทางโปรแกรม (ซึ่งฉันจะเติมด้วยค่าที่กำหนดเอง) ให้กับ $cloned_node
. เมื่อการกระทำเหล่านี้เสร็จสิ้น $cloned_node->บันทึก()
จะถูกใช้เพื่อสิ้นสุดกระบวนการโคลนนิ่ง
เพียงเพิ่มมูลค่าผ่าน $cloned_node->set("field_int_how_many", $value)
ดูเหมือนจะไม่ทำเคล็ดลับ: เกิดข้อผิดพลาด PHP
InvalidArgumentException: ไม่รู้จักฟิลด์ field_int_how_many ใน Drupal\Core\Entity\ContentEntityBase->getTranslatedField() (บรรทัดที่ 587 ของ /home/username/domains/domainname.com/public_html/devsite/web/core/lib/Drupal/Core/Entity/ContentEntityBase.php)
ใครบ้างมีความคิดที่จะเพิ่มฟิลด์พิเศษเหล่านั้นไปยังโหนดโคลน